public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/107761] New: Implement C++23 <mdspan>
@ 2022-11-19 11:33 redi at gcc dot gnu.org
2022-12-08 20:25 ` [Bug libstdc++/107761] " pinskia at gcc dot gnu.org
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: redi at gcc dot gnu.org @ 2022-11-19 11:33 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107761
Bug ID: 107761
Summary: Implement C++23 <mdspan>
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: redi at gcc dot gnu.org
Blocks: 106749
Target Milestone: ---
https://wg21.link/P0009R18
https://wg21.link/P2599R2
https://wg21.link/P2604R0
https://wg21.link/P2613R1
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106749
[Bug 106749] Implement C++23 library features
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libstdc++/107761] Implement C++23 <mdspan>
2022-11-19 11:33 [Bug libstdc++/107761] New: Implement C++23 <mdspan> redi at gcc dot gnu.org
@ 2022-12-08 20:25 ` pinskia at gcc dot gnu.org
2023-08-20 20:40 ` gonzalo.gadeschi at gmail dot com
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-12-08 20:25 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107761
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
Last reconfirmed| |2022-12-08
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libstdc++/107761] Implement C++23 <mdspan>
2022-11-19 11:33 [Bug libstdc++/107761] New: Implement C++23 <mdspan> redi at gcc dot gnu.org
2022-12-08 20:25 ` [Bug libstdc++/107761] " pinskia at gcc dot gnu.org
@ 2023-08-20 20:40 ` gonzalo.gadeschi at gmail dot com
2023-12-23 14:31 ` cooky.ykooc922 at gmail dot com
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: gonzalo.gadeschi at gmail dot com @ 2023-08-20 20:40 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107761
--- Comment #2 from gnzlbg <gonzalo.gadeschi at gmail dot com> ---
Update: the reference implementation is now merged into libc++ and will release
with LLVM 17.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libstdc++/107761] Implement C++23 <mdspan>
2022-11-19 11:33 [Bug libstdc++/107761] New: Implement C++23 <mdspan> redi at gcc dot gnu.org
2022-12-08 20:25 ` [Bug libstdc++/107761] " pinskia at gcc dot gnu.org
2023-08-20 20:40 ` gonzalo.gadeschi at gmail dot com
@ 2023-12-23 14:31 ` cooky.ykooc922 at gmail dot com
2023-12-23 14:46 ` redi at gcc dot gnu.org
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: cooky.ykooc922 at gmail dot com @ 2023-12-23 14:31 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107761
Desmond Gold <cooky.ykooc922 at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |cooky.ykooc922 at gmail dot com
--- Comment #3 from Desmond Gold <cooky.ykooc922 at gmail dot com> ---
I've implemented c++23 features for <mdspan> in libstdc++ (hopefully) which is
inspired by other reference implementations (libc++, STL, Kokkos).
https://godbolt.org/z/Gc8vvjaT9
however:
+ no optimizations yet (this includes SBO)
+ no 'stronger' and complete tests yet
+ no documentation yet
+ some assertions have no messages
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libstdc++/107761] Implement C++23 <mdspan>
2022-11-19 11:33 [Bug libstdc++/107761] New: Implement C++23 <mdspan> redi at gcc dot gnu.org
` (2 preceding siblings ...)
2023-12-23 14:31 ` cooky.ykooc922 at gmail dot com
@ 2023-12-23 14:46 ` redi at gcc dot gnu.org
2023-12-23 22:44 ` cooky.ykooc922 at gmail dot com
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: redi at gcc dot gnu.org @ 2023-12-23 14:46 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107761
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
What does "inspired by" mean? We need to be careful of authorship, copyright
ownership, and licensing.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libstdc++/107761] Implement C++23 <mdspan>
2022-11-19 11:33 [Bug libstdc++/107761] New: Implement C++23 <mdspan> redi at gcc dot gnu.org
` (3 preceding siblings ...)
2023-12-23 14:46 ` redi at gcc dot gnu.org
@ 2023-12-23 22:44 ` cooky.ykooc922 at gmail dot com
2023-12-24 14:34 ` redi at gcc dot gnu.org
2023-12-26 13:39 ` cooky.ykooc922 at gmail dot com
6 siblings, 0 replies; 8+ messages in thread
From: cooky.ykooc922 at gmail dot com @ 2023-12-23 22:44 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107761
--- Comment #5 from Desmond Gold <cooky.ykooc922 at gmail dot com> ---
when I mentioned being "inspired by," I was referring to drawing guidance from
existing reference implementations like libc++, STL, and Kokkos for the
<mdspan> implementation in libstdc++. Specifically, for how they implement the
preconditions and layout_stride. I apologize for not explicitly defining what I
meant by "inspiration" earlier. However, it's important to note that my work
primarily adheres to the standards' definitions rather than directly
replicating code. This approach ensures alignment with the intended
functionality while respecting authorship, copyright, and licensing concerns.
From the link you've checked out, you'll notice the implementation is still a
work in progress. It's incomplete and would greatly benefit from additional
feedback to incorporate the missing elements :>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libstdc++/107761] Implement C++23 <mdspan>
2022-11-19 11:33 [Bug libstdc++/107761] New: Implement C++23 <mdspan> redi at gcc dot gnu.org
` (4 preceding siblings ...)
2023-12-23 22:44 ` cooky.ykooc922 at gmail dot com
@ 2023-12-24 14:34 ` redi at gcc dot gnu.org
2023-12-26 13:39 ` cooky.ykooc922 at gmail dot com
6 siblings, 0 replies; 8+ messages in thread
From: redi at gcc dot gnu.org @ 2023-12-24 14:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107761
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> ---
OK that's great, thanks for clarifying. (I haven't looked at the impl on
godbolt yet, sorry)
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug libstdc++/107761] Implement C++23 <mdspan>
2022-11-19 11:33 [Bug libstdc++/107761] New: Implement C++23 <mdspan> redi at gcc dot gnu.org
` (5 preceding siblings ...)
2023-12-24 14:34 ` redi at gcc dot gnu.org
@ 2023-12-26 13:39 ` cooky.ykooc922 at gmail dot com
6 siblings, 0 replies; 8+ messages in thread
From: cooky.ykooc922 at gmail dot com @ 2023-12-26 13:39 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107761
--- Comment #7 from Desmond Gold <cooky.ykooc922 at gmail dot com> ---
Here's an updated version of the implementation with following changes:
+ followed coding style of GNU (maybe not all)
+ added initial implementation of std::submdspan facilities (without
constraints and preconditions yet)
+ tweaked some of the problems in previous implementation
https://godbolt.org/z/Mxs1YP8n7
summary
+ implemented c++23 <mdspan>
+ implemented c++26 std::submdspan facilities in <mdspan>
+ added c++23 feature (concepts only): '__tuple_like' and '__pair_like'
to be used by '__mdspan::__index_pair_like'
+ added alias template '_Nth_type_t' which would supposedly be placed
inside <bits/utility.h>
+ still no documentations, incomplete preconditions and constraints, and
incomplete tests
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-12-26 13:39 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-19 11:33 [Bug libstdc++/107761] New: Implement C++23 <mdspan> redi at gcc dot gnu.org
2022-12-08 20:25 ` [Bug libstdc++/107761] " pinskia at gcc dot gnu.org
2023-08-20 20:40 ` gonzalo.gadeschi at gmail dot com
2023-12-23 14:31 ` cooky.ykooc922 at gmail dot com
2023-12-23 14:46 ` redi at gcc dot gnu.org
2023-12-23 22:44 ` cooky.ykooc922 at gmail dot com
2023-12-24 14:34 ` redi at gcc dot gnu.org
2023-12-26 13:39 ` cooky.ykooc922 at gmail dot com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).