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

P2093 Formatted output #884

Open
wg21bot opened this issue Jun 17, 2020 · 24 comments
Open

P2093 Formatted output #884

wg21bot opened this issue Jun 17, 2020 · 24 comments

Comments

@wg21bot
Copy link
Collaborator

@wg21bot wg21bot commented Jun 17, 2020

P2093R0 Formatted output (Victor Zverovich)

@wg21bot wg21bot added this to the 2020-telecon milestone Jun 17, 2020
@wg21bot
Copy link
Collaborator Author

@wg21bot wg21bot commented Aug 1, 2020

P2093R1 Formatted output (Victor Zverovich)

@brycelelbach
Copy link
Collaborator

@brycelelbach brycelelbach commented Oct 20, 2020

2020-09-29 Library Evolution Telecon Minutes

Chair: Fabio Fracassi

Champion: Victor Zverovich

Minute Taker: Ben Craig

POLL: We prefer std::cout as the default output target.

SF WF N WA SA
3 2 6 6 5

POLL: Add a member function on ostream instead of a std::print(ostream&, ...) free function overload

SF WF N WA SA
0 2 5 17 3

Author's Position: WF

Attendance: 35

Outcome: Consensus against.

POLL: Remove std::println from the paper

SF WF N WA SA
1 10 7 4 4

Outcome: No strong consensus for change.

Author's Position: N

Attendance: 35

@wg21bot
Copy link
Collaborator Author

@wg21bot wg21bot commented Oct 27, 2020

P2093R2 Formatted output (Victor Zverovich)

@jensmaurer jensmaurer removed this from the 2020-telecon milestone Dec 28, 2020
@jensmaurer jensmaurer added this to the 2021-telecon milestone Dec 28, 2020
@wg21bot
Copy link
Collaborator Author

@wg21bot wg21bot commented Jan 22, 2021

P2093R3 Formatted output (Victor Zverovich)

@brycelelbach
Copy link
Collaborator

@brycelelbach brycelelbach commented Jan 23, 2021

Polls

Poll: We want P2093r2 to revert moving the print(ostream) overloads to the header.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
0 0 6 6 1

Attendance: 17

# of Authors: 1

Author Position: WA

Outcome: Keep the paper as written.

Summary

This was only a short discussion at the end of a session. As before we like the direction of the paper. No new issues came up and we affirmed the design decission of the author to put the ostream related overloads into the ostream header.

Outcome

No changes to the paper. Discussion on this paper will continue.

@wg21bot
Copy link
Collaborator Author

@wg21bot wg21bot commented Feb 22, 2021

P2093R4 Formatted output (Victor Zverovich)

@tahonermann
Copy link
Collaborator

@tahonermann tahonermann commented Feb 22, 2021

SG16 reviewed P2093R2 in our 2020-12-09 telecon and P2093R3 in our 2021-02-10 telecon. R3 implemented the feedback provided during the review of R2.

The following poll was conducted:

Forward P2093R3 to LEWG.

SF F N A SA
4 2 2 0 1

Consensus? Yes

Sustained opposition exists regarding progressing this paper without exposing low level interfaces to 1) detect whether output is directed to a console/terminal, 2) write directly to a console/terminal. The author has agreed to propose such facilities in a separate paper.

Concerns regarding encoding and how support for additional character types can be incorporated remain, but these concerns were not deemed sufficient to preclude progress on this paper. Participants with such concerns are encouraged to follow up in a separate paper.

Removing the SG16 label.

@tahonermann tahonermann removed the SG16 label Feb 22, 2021
@vitaut
Copy link

@vitaut vitaut commented Feb 27, 2021

@tahonermann, there is some unrelated text in the poll statement above ("D1885R2: We want to support non-IANA registered encodings provided by the implementation").

@tahonermann
Copy link
Collaborator

@tahonermann tahonermann commented Feb 27, 2021

there is some unrelated text in the poll statement above

Oops, thank you @vitaut, fixed!

@tahonermann
Copy link
Collaborator

@tahonermann tahonermann commented Mar 10, 2021

@brycelelbach, I think LEWG related tags may not be correctly set for this paper. I suspect this should have the "ready-for-library-evolution-meeting-review" tag.

@wg21bot
Copy link
Collaborator Author

@wg21bot wg21bot commented Mar 25, 2021

P2093R5 Formatted output (Victor Zverovich)

@FabioFracassi
Copy link
Collaborator

@FabioFracassi FabioFracassi commented Apr 16, 2021

2021-04-06 Library Evolution Telecon

P2093R5: Formatted output

2021-04-06 Library Evolution Telecon Minutes

Poll: Block P2093 until we have a proposal for a lower level facility that can query tty/console and preform direct output to the console

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
2 1 5 5 6

Attendance: 26

# of Authors: 1

Author Position: SA

Outcome: Consensus Against

POLL: We want std::print et al. non ostream overloads to go to:

Header Approve Disapprove
<ostream> 3 7
<io> 6 5
<print> 10 3
<format> 12 1
<utility> 1 13

Attendance: 24

# of Authors: 1

Author Position: Against both of the favored options.

Outcome: Both <print> and <format> have consensus, author can choose on for the next revision.

Summary

We discussed several questions that were posed to us by SG16 (Unicode). We were able to make progress on several technical questions. The discussion about transcoding requirements and consequences however needs more information to progress.

Outcome

We decided not to block the paper to wait for a lower level facility to interact with consoles/terminals. We discussed naming and header placement as guidance. The paper has been sent back to SG16 (Unicode) for clarification. The issues that need to be decided for this Paper are in SG16's expert domain. Library Evolution needs more information about the design space.

@FabioFracassi FabioFracassi added SG16 and removed LEWG labels Apr 16, 2021
@brycelelbach
Copy link
Collaborator

@brycelelbach brycelelbach commented Apr 23, 2021

No, it's just unescaped < and >; fixed.

@wg21bot
Copy link
Collaborator Author

@wg21bot wg21bot commented May 21, 2021

P2093R6 Formatted output (Victor Zverovich)

@tahonermann
Copy link
Collaborator

@tahonermann tahonermann commented Jul 26, 2021

SG16 continues to review P2093, but has not yet approved it. Recent discussions occurred during our May 12th, May 26th, June 9th, and June 23rd telecons. The following polls were conducted during the latter two telecons (the polls were taken in the order presented; the numbers correspond to IDs assigned while drafting them and are retained here for cross reference purposes with posted meeting summaries).

Some aspects of the proposed design remain controversial and are entangled with LWG 3565. SG16 will be discussing the latter issue at our next telecon on July 28th, 2021. We are otherwise awaiting new information that helps to increase consensus.

  • Pools taken June 9th:
    • Poll 1: P2093R6: <format> and <print> facilities should have consistent behavior with respect to encoding expectations for the format string.
      • Attendance: 8
      • No objection to unanimous consent.
    • Poll 2.2: P2093R6: formatters should not be sensitive to whether they are being used with a <format> or <print> facility.
      • Attendance: 8
      • No objection to unanimous consent.
    • Poll 3.1: P2093R6: Regardless of format string encoding assumptions, <format> facilities may be used to format binary data.
      • Attendance: 8 (1 abstention)

        SF F N A SA
        5 1 1 0 0
      • Consensus: Strong consensus in favor.

    • Poll 3.2: P2093R6: Regardless of format string encoding assumptions, <print> facilities may be used to format binary data.
      • Attendance: 8 (1 abstention)

        SF F N A SA
        2 1 3 1 0
      • Consensus: Weak consensus in favor.

    • Poll 4: P2093R6: <print> facilities exhibit undefined behavior when an encoding expectation is present and a format string or formatter output does not match those expectations.
      • Attendance: 8 (1 abstention)

        SF F N A SA
        2 4 0 0 1
      • Consensus: Strong consensus in favor.

    • Poll 5: P2093R6: <print> facilities exhibit undefined behavior when an encoding expectation is present and a format string or formatter output does not match those expectations and output is directed to a device that has encoding expectations.
      • Attendance: 8 (1 abstention)

        SF F N A SA
        6 0 1 0 0
      • Consensus: Stronger consensus in favor relative to poll 4.

    • Poll 6: P2093R6: <print> facility implementors are encouraged to provide a run-time means for diagnosing format strings and formatter output that is not well-formed according to the expected encoding.
      • Attendance: 8 (1 abstention)

        SF F N A SA
        4 0 2 1 0
      • Consensus: Consensus in favor.

  • Polls taken June 23rd:
    • Poll 2.1: P2093R6: <format> and <print> facilities should have consistent behavior with respect to encoding expectations for the output of formatters.
      • Attendance: 9 (1 abstention)

        SF F N A SA
        0 1 1 5 1
      • Consensus: Strong consensus against.

    • Poll 7: P2093R6: <print> facility implementors are encouraged to substitute U+FFFD replacement characters following Unicode guidance when output is directed to a device and transcoding is necessary.
      • Attendance: 9 (1 abstention)

        SF F N A SA
        2 5 0 0 1
      • Consensus: Consensus in favor.

    • Poll 8: P2093R6: <print> facilities must provide an explicit program-controlled error handling mechanism for violations of encoding expectations.
      • Attendance: 9

        SF F N A SA
        0 0 3 3 3
      • Consensus: Strong consensus against.

    • Poll 9: P2093R6: Use of UTF-8 as the literal encoding is sufficient for <print> facilities to establish encoding expectations.
      • Attendance: 9

        SF F N A SA
        3 1 3 2 0
      • Consensus: Very weak consensus.

@wg21bot
Copy link
Collaborator Author

@wg21bot wg21bot commented Jul 30, 2021

P2093R7 Formatted output (Victor Zverovich)

@wg21bot
Copy link
Collaborator Author

@wg21bot wg21bot commented Aug 23, 2021

P2093R8 Formatted output (Victor Zverovich)

@wg21bot
Copy link
Collaborator Author

@wg21bot wg21bot commented Sep 20, 2021

P2093R9 Formatted output (Victor Zverovich)

@peter-b
Copy link
Collaborator

@peter-b peter-b commented Sep 20, 2021

We revisited P2093R8 during our SG16 call on September 8th, 2021. We took the following polls during our discussion:

  • Poll: Use of UTF-8 as the literal encoding is sufficient for facilities to establish encoding expectations.

    • Attendance: 9

      SF F N A SA
      2 3 2 1 0
    • Consensus in favour.

  • Poll: Correct the P2093R8 wording for [print.syn].31 to remove ambiguities, and forward P2093 as revised to LEWG with a recommended ship vehicle of C++23.

    • Attendance: 9

      SF F N A SA
      1 4 2 0 0
    • Consensus in favor.

Removing SG16 label.

@peter-b peter-b removed the SG16 label Sep 20, 2021
@wg21bot
Copy link
Collaborator Author

@wg21bot wg21bot commented Nov 26, 2021

P2093R10 Formatted output (Victor Zverovich)

@brycelelbach
Copy link
Collaborator

@brycelelbach brycelelbach commented Nov 29, 2021

2021-11-29 Library Evolution Telecon

P2093R10: Formatted Output

2021-11-29 Library Evolution Telecon Minutes

Chair: Bryce Adelstein Lelbach

Champion: Victor Zverovich

Minute Taker: Ben Craig

Start: 2021-11-29 11:09 Pacific

Does this proposal have:

  • Examples?
    • Yes.
  • Implementation experience?
    • Partially. We have experience in fmt, but not in a C++ Standard Library or reference implementation written from the spec.
    • No field experience in fmt with the mojibake prevention.
  • Usage experience?
    • Partially. We have experience in fmt, but not in a C++ Standard Library or reference implementation written from the spec.
    • No field experience in fmt with the mojibake prevention.
  • Deployment experience?
    • Partially. We have experience in fmt, but not in a C++ Standard Library or reference implementation written from the spec.
    • No field experience in fmt with the mojibake prevention.
  • Performance considerations?
    • Yes.
  • Discussion of prior art?
    • Yes (fmt, Python's print).
  • Changes Library Evolution previously requested?
    • Yes.
  • Wording?
    • Yes.
  • Feature test macro?
    • Yes.

Open Questions:

  • Should vprint_unicode always require Unicode?

POLL: Modify P2093R10 (Formatted Output) by updating the wording of the vprint_unicode stream overload to match the vprint_unicode FILE* overload and not reference basic_filebuf specifically, and send the revised paper to LWG for C++23 with priority B3 (to be confirmed with a Library Evolution electronic poll).

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
10 4 0 0 0

Attendance: 21

# of Authors: 1

Author Position: SF

Outcome: Strong consensus in favor.

End: 11:55

Summary

We discussed P2098 (formatted output), which we've seen a few times in the past. The paper has been iterating in the Text and Unicode study group, which recently approved it and sent it back to Library Evolution.

There have not been many significant revisions to the library API since the last time Library Evolution reviewed it. We did identify some mismatches between design intent and wording during our review, but these were all minor matters with a clear resolution.

Outcome

Modify P2093R10 (Formatted Output) by updating the wording of the vprint_unicode stream overload to match the vprint_unicode FILE* overload and not reference basic_filebuf specifically, and send the revised paper to LWG for C++23 with priority B3 (to be confirmed with a Library Evolution electronic poll).

@wg21bot
Copy link
Collaborator Author

@wg21bot wg21bot commented Dec 18, 2021

P2093R11 Formatted output (Victor Zverovich)

@jensmaurer jensmaurer removed this from the 2021-telecon milestone Jan 1, 2022
@jensmaurer jensmaurer added this to the 2022-telecon milestone Jan 1, 2022
@cor3ntin
Copy link
Collaborator

@cor3ntin cor3ntin commented Jan 16, 2022

LEWG electronic polling, december 2021

POLL: Send [P2093R11] (Formatted Output) to Library Working Group for C++23, classified as an addition ([P0592R4] bucket 3 item).

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
18 9 2 0 1

Consensus in favor, forwarded to LWG

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
10 participants