public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "dmalcolm at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug other/109163] New: SARIF (and other JSON) output files are non-deterministic
Date: Thu, 16 Mar 2023 22:05:56 +0000	[thread overview]
Message-ID: <bug-109163-4@http.gcc.gnu.org/bugzilla/> (raw)

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109163

            Bug ID: 109163
           Summary: SARIF (and other JSON) output files are
                    non-deterministic
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: other
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dmalcolm at gcc dot gnu.org
  Target Milestone: ---

gcc/json.cc's json::object uses a hash_map for tracking the key/value pairs,
and object::print iterates through them in arbitrary order, so every time we
emit json files they can potentially vary, which makes it much harder to
compare them from run to run (see e.g. PR 105959).

It would probably be much more user-friendly to use an ordered_hash_map here to
preserve insertion order and thus have deterministic output.  I don't know if
this would have a noticeable performance hit.

             reply	other threads:[~2023-03-16 22:05 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-16 22:05 dmalcolm at gcc dot gnu.org [this message]
2023-03-16 22:10 ` [Bug other/109163] " dmalcolm at gcc dot gnu.org
2023-03-16 22:49 ` dmalcolm at gcc dot gnu.org
2023-03-17 20:57 ` dmalcolm at gcc dot gnu.org
2023-03-24 15:41 ` cvs-commit at gcc dot gnu.org
2023-03-31 13:03 ` dmalcolm at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-109163-4@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).