Skip to content
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

Restructuring clauses for C++23 #5124

Closed
7 of 8 tasks
jensmaurer opened this issue Nov 23, 2021 · 11 comments · Fixed by #5313
Closed
7 of 8 tasks

Restructuring clauses for C++23 #5124

jensmaurer opened this issue Nov 23, 2021 · 11 comments · Fixed by #5313
Assignees
Milestone

Comments

@jensmaurer
Copy link
Member

jensmaurer commented Nov 23, 2021

Sub-issues with discussion:
#2252 (basic, lex)
#3388 (utilities)
#3349 (atomics, thread, locale, regex, format)

Consensus items:

  • Move [basic] before [lex]. Move [lex.separate] and [lex.phases] into [basic] just after [basic.pre].
  • Move {class.free] to immediately before [class.nest]. (Class-specific de/allocation functions are member functions, after all.)
  • Move [bit] to the end of [utilities].
  • Move [stacktrace] to [diagnostics].
  • Create a new top-level section "Memory management [mem]" immediately before [utilities] and move [memory], [smartptr], [memres], and [allocator.adaptor] there.
  • Move [string.view] to immediately before [string.classes].
  • Move [meta] to the top level, just before [utilities] (after [mem]), put integer sequences and ratio into it. Drop "compile-time" from subordinate headings. Eventual "reflection" would also go into [meta].
  • Move [atomics] into [thread], after [thread.threads], before mutexes. Rename [thread] to "Concurrency support library".
@jensmaurer jensmaurer added this to the C++23 milestone Nov 23, 2021
@jensmaurer jensmaurer added this to Open in C++23 clause renumbering via automation Nov 23, 2021
@frederick-vs-ja
Copy link
Contributor

Is "compile-time something" a good title? In the core specification, "translation" (which is more general than "compilation") is generally used.

@jensmaurer
Copy link
Member Author

Fair question. I note we already have "compile-time" in the titles of two subsections of [utilities]. We also have "metaprogramming" in the title of [meta].

@jwakely
Copy link
Member

jwakely commented Nov 30, 2021

[string.view] should be before [string.classes], because basic_string is defined in terms of basic_string_view, e.g. [string.copy], [string.find], [string.compare] etc.

It would be better if these were not forward references to something that hasn't been defined yet.

@tkoeppe
Copy link
Contributor

tkoeppe commented Jan 21, 2022

Meeting notes:

See tick marks for approvals as is.

Accepted with modifications:

  • Move [meta] to the top level, put integer sequences and ratio into it. Eventual "reflection" would also go into [meta].
  • Move [atomics] to the end of after threads, before mutexes, not near the beginning.

Note re class.free: the subclause used to be bigger, but now it makes sense to move it.

No consensus for touching [cpp].

Re [charconv] and [format]: We will propose a larger reorganization here that creates a new "Text" Clause, containing formatting, charconv, locales, cctypes etc (everything other than cstring), and regex. This will be reproposed as a separate issue.

@jensmaurer
Copy link
Member Author

Deliberations from the 2022-01-21 editorial meeting are reflected in the issue description at the top.

@StephanTLavavej
Copy link
Contributor

Could the editors consider making [filesystems] a top-level clause? It is large (~50 pages) and in my opinion is both self-contained and very different from iostreams.

Aside: There is a typo in the issue description (may impact searching), [utilitites] should be [utilities].

@jwakely
Copy link
Member

jwakely commented Feb 3, 2022

Yes I said the same thing about <filesystem> in the recent editorial telecon, but I can't remember why we didn't pursue the idea. Maybe one of the others remembers.

@jensmaurer
Copy link
Member Author

  • It fell through the cracks.
  • It is still input/output in terms of "needs lots of operating system calls"
  • Anything [input.output] is observable behavior per [intro.abstract] --- ah, that's actually not true, but that's a defect: [intro.abstract] p6.2 should be amended to talk about "stuff done to the filesystem, e.g. mkdir". Sounds like an LWG issue that needs CWG review. Let's rejoice.

@jensmaurer
Copy link
Member Author

Removed [basic] / [lex] reshuffling from the C++23 plan.

@jwakely
Copy link
Member

jwakely commented Feb 3, 2022

* Anything [input.output] is observable behavior per [intro.abstract] --- ah, that's actually not true, but that's a defect: [intro.abstract] p6.2 should be amended to talk about "stuff done to the filesystem, e.g. mkdir". Sounds like an LWG issue that needs CWG review. Let's rejoice.

Good point, I've submitted a new issue.

@jensmaurer jensmaurer pinned this issue Feb 6, 2022
@Mick235711
Copy link
Contributor

Mick235711 commented Feb 10, 2022

Move [meta] to the top level, just before [utilities] (after [mem]), put integer sequences and ratio into it. Drop "compile-time" from subordinate headings. Eventual "reflection" would also go into [meta].

[concepts], being the smallest library clause with only 13 pages, probably should go there too.

@jensmaurer jensmaurer self-assigned this Feb 23, 2022
C++23 clause renumbering automation moved this from Open to Done Feb 23, 2022
@jensmaurer jensmaurer unpinned this issue Feb 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging a pull request may close this issue.

6 participants