blob: d0f84682a3f1f543da16d0ae1aa93e0651aeb5db [file] [log] [blame] [raw]
//Be aware: modifying this file in any way will cause a pop-up to users telling them the privacy policy has changed.
html(lang="en")
body
span(id="last-changed")
| Last changed on:
|
time(id="changed-date" datetime=lastTime) #{lastTime}
|
| (
i
a(href="https://github.com/compiler-explorer/compiler-explorer/commit/" + lastCommit target="_blank") diff
| )
h2 Compiler Explorer Privacy Policy
p
| Thanks for your interest in what Compiler Explorer does with your data. Data protection is really
| important to the Compiler Explorer team, and we want to be very clear about what we do with your data.
h3 Who we are
p
| Compiler Explorer was created by and is primarily administrated by
|
a(href="mailto:matt@godbolt.org") Matt Godbolt
| , along with a number of volunteers (including, but not limited to those listed in our "
a(href="https://github.com/compiler-explorer/compiler-explorer/blob/main/AUTHORS.md"
target="_blank" rel="noreferrer noopener") Authors
| " documentation).
| It is run on a best-effort basis, and is not a commercial product. We do our best
| to keep your data safe, but welcome help from the community: See our
|
a(href="https://github.com/compiler-explorer/compiler-explorer"
target="_blank" rel="noreferrer noopener") GitHub project page
|
| if you wish to help.
h3 Your data
p
| In order to process compilation and execution requests, your browser sends the source code you typed in the editor
| window along with your chosen compiler and options to the Compiler Explorer servers. There, the source code is
| written to disk and your chosen compiler is invoked on it. If your request was to have your code executed, the
| resulting executable is run. The outputs from compilation and execution are processed and sent back to your web
| browser, where they're shown. Shortly after this process completes, your source code is deleted from disk. If, in
| processing your query, an issue with Compiler Explorer is found, your code may be kept for up to a week in order to
| help debug and diagnose the problem. Only the Compiler Explorer team will have access to your code, and only for the
| purposes of debugging the site: we will never share your code with anyone.
p
| If you choose a Microsoft compiler, then your code may be sent to and compiled on a machine administrated by
| Microsoft. Such code is covered by the
|
a(href="https://privacy.microsoft.com/en-US/privacy.pug" target="_blank") Microsoft Privacy Policy.
p
| The source code and options are also subject to a one-way hash, which is used to cache the results to speed up
| subsequent compilations of the same code. The cache is in-memory and on-disk. It's impossible to reconstruct the
| source code from the hash, but the resulting assembly code or binary output (the compilation result) is stored as
| plain text. There's no way to enumerate the in-memory cache contents. In exceptional cases, administrator members of
| the Compiler Explorer team may be able to enumerate the disk caches and retrieve the compilation output, but with no
| way to trace it back to the source code.
p
| In short: your source code is stored in plaintext for the minimum time feasible to be able to process your request.
| After that, it is discarded and is inaccessible. In very rare cases your code may be kept for a little longer (at
| most a week) to help debug issues in Compiler Explorer.
h4 Short links
p
| If you choose to share your code using the "Share" dropdown, then the user interface state including the source code
| is stored. For a "Full" link, this information is encoded into the URL as a URL hash (e.g.
| #[code https://godbolt.org/#ui_state_and_code]). For short URLs, the interface state is stored on
| Compiler Explorer's servers, and a shortened name uniquely
| referring to this data is returned. The shortened name comes from a secure hash of the state, and without
| knowing the name it is infeasible to access the data. Only Compiler Explorer administrators can access this data
| directly. Obfuscated IP addresses and creation time are stored alongside this data, to enable spam detection.
| Links of this form look like #[code https://godbolt.org/z/SHORTNAME].
p
| Prior to storing data itself, Compiler Explorer used an external URL shortening service (
a(href="https://goo.gl/" target="_blank") goo.gl
| ) and the resulting short URL was rewritten as #[code https://godbolt.org/g/SHORTURLPART].
| The storage for the user experience state in this case remains with the short URL provider,
| not Compiler Explorer.
h4 Application, web and error logs
p
| Compiler Explorer keeps application logs, which contain semi-anonymised IP addresses, but no other personally
| identifying information. When a long URL is clicked, the hash part of the URL is not sent to the server, so the user
| state (including the source code) is NOT exposed in the web log. If a user clicks a short URL, then the short form
| #[em is] exposed in the web log (as #[code https://godbolt.org/g/SHORTURLPART]) and from this the source code can be
| retrieved. As such, if you create a short URL of your code, your source
| code and other user state can in principle be retrieved from the web log of Compiler Explorer.
p
| Compiler Explorer uses Amazon's web serving, load balancing and edge caching systems. In order to debug and diagnose
| Compiler Explorer, to help track down and block Denial of Service attacks, and to gather statistics about Compiler
| Explorer's performance and usage, the logs from these systems are archived. These logs contain the full IP addresses
| of requests. They are kept for no more than one month, after which they are permanently deleted.
p
| If your web browser experiences an error, we use a third party reporting system (
a(href="https://sentry.io/" target="_blank") Sentry
| ). This keeps information, including your IP address and web browser user agent, for no more than 90 days.
h4 Executing your code
p
| For certain configurations, we may support executing the results of your compilation on the Compiler Explorer
| servers. Execution occurs in a heavily locked-down, isolated environment. We have made reasonable efforts to protect
| both the Compiler Explorer site and other concurrently-processed requests from information leakage due to rogue
| executions.
h4 Cookies
p
| Separately, Compiler Explorer uses small pieces of information stored on your computer: Cookies and Browser Local
| Storage. Cookies are only used with the user's permission, and are used with external analytics services (e.g.
| Google Analytics) to gather statistics on Compiler Explorer usage. This information is used to help the Compiler
| Explorer team plan for future updates and hardware upgrades in order to ensure the site remains stable and
| responsive. Local storage is used to remember the user's settings, source code and user interface configuration, so
| that it's available when the user visits the Compiler Explorer site again. This information is not transmitted to
| Compiler Explorer, except as described above in order to fulfil the user's requests. There is a
|
a(href="#cookies" rel="noreferrer noopener") separate document
|
| covering more on this. Statistics tracking information is kept for 14 months, after which it is removed.
h3 Your choices
p
| Compiler Explorer is an open source project. If you are concerned about any of the data protection measures outlined
| above, or about what happens to your source code, you are encouraged to run your own local instance of Compiler
| Explorer. Instructions on how to do this are on the
|
a(href="https://github.com/compiler-explorer/compiler-explorer"
target="_blank" rel="noreferrer noopener") GitHub project page
| .
h3 Compiler Explorer and the GDPR
p
| The Compiler Explorer team believes the Compiler Explorer site is compliant with the EU's General Data Protection
| Regulation (GDPR). Specifically, we store no personally identifying information, we anonymise the little data that
| we do have and we do not permanently store any user data.
h4 Name and Address of the controller
p
| The Controller for the purposes of the General Data Protection Regulation (GDPR), other data protection laws
| applicable in Member states of the European Union and other provisions related to data protection is:
div
| Matt Godbolt
br
| 2626 Orrington Ave
br
| Evanston IL 60201 USA
br
| +1 312 792-7931<br>
a(href="mailto:matt@godbolt.org") matt@godbolt.org