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).