blob: 3c35feb1ac9a3cefec4e9ca8640ac5ee9672d9d9 [file] [log] [blame] [raw]
<!DOCTYPE html>
<!--
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>
<!--
No need to update this! It's done by the CLI build process
-->
<time id="changed-date"></time>
<h2>Compiler Explorer Privacy Policy</h2>
<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.
</p>
<h3>Who we are</h3>
<p>
Compiler Explorer was created by and is primarily administrated by
<a href="mailto:matt@godbolt.org">Matt Godbolt</a>,
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/master/AUTHORS.md" target="_blank"
rel="noreferrer noopener">Authors</a>" 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</a> if you wish to help.
</p>
<h3>Your data</h3>
<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>
<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/" target="_blank">Microsoft
Privacy Policy.</a>
</p>
<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>
<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.
</p>
<h4>Short links</h4>
<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</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</code>.
</p>
<p>
Prior to storing data itself, Compiler Explorer used an external URL shortening service
(<a href="https://goo.gl/" target="_blank">goo.gl</a>) and the resulting short URL was rewritten as
<code>https://godbolt.org/g/SHORTURLPART</code>. The storage for the user experience state in this case remains with
the short URL provider, not Compiler Explorer.
</p>
<h4>Web logs</h4>
<p>
Compiler Explorer keeps web 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 IS
exposed in the web log (as <code>https://godbolt.org/g/SHORTURLPART</code>) 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>
<p>
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 web logs are archived. These logs are kept
for one month, after which they are permanently deleted.
</p>
<h4>Executing your code</h4>
<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.
</p>
<h4>Cookies</h4>
<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 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</a> covering more on this. Statistics tracking
information is kept for 14 months, after which it is removed.
</p>
<h3>Your choices</h3>
<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</a>.
</p>
<h3>Compiler Explorer and the GDPR</h3>
<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.
</p>
<h4>Name and Address of the controller</h4>
<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:
</p>
<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</a>
</div>
</body>
</html>