{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/7270","labels_url":"https://api.github.com/repos/dotnet/roslyn/issues/7270/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/roslyn/issues/7270/comments","events_url":"https://api.github.com/repos/dotnet/roslyn/issues/7270/events","html_url":"https://github.com/dotnet/roslyn/issues/7270","id":120691324,"number":7270,"title":"Comments and whitespace should not influence determinism","user":{"login":"jaredpar","id":146967,"avatar_url":"https://avatars.githubusercontent.com/u/146967?v=3","gravatar_id":"","url":"https://api.github.com/users/jaredpar","html_url":"https://github.com/jaredpar","followers_url":"https://api.github.com/users/jaredpar/followers","following_url":"https://api.github.com/users/jaredpar/following{/other_user}","gists_url":"https://api.github.com/users/jaredpar/gists{/gist_id}","starred_url":"https://api.github.com/users/jaredpar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaredpar/subscriptions","organizations_url":"https://api.github.com/users/jaredpar/orgs","repos_url":"https://api.github.com/users/jaredpar/repos","events_url":"https://api.github.com/users/jaredpar/events{/privacy}","received_events_url":"https://api.github.com/users/jaredpar/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Area-Compilers","name":"Area-Compilers","color":"5319e7"},{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Bug","name":"Bug","color":"fc2929"},{"url":"https://api.github.com/repos/dotnet/roslyn/labels/Concept-Determinism","name":"Concept-Determinism","color":"fef2c0"}],"state":"open","locked":false,"assignee":{"login":"TyOverby","id":573215,"avatar_url":"https://avatars.githubusercontent.com/u/573215?v=3","gravatar_id":"","url":"https://api.github.com/users/TyOverby","html_url":"https://github.com/TyOverby","followers_url":"https://api.github.com/users/TyOverby/followers","following_url":"https://api.github.com/users/TyOverby/following{/other_user}","gists_url":"https://api.github.com/users/TyOverby/gists{/gist_id}","starred_url":"https://api.github.com/users/TyOverby/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TyOverby/subscriptions","organizations_url":"https://api.github.com/users/TyOverby/orgs","repos_url":"https://api.github.com/users/TyOverby/repos","events_url":"https://api.github.com/users/TyOverby/events{/privacy}","received_events_url":"https://api.github.com/users/TyOverby/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/dotnet/roslyn/milestones/4","html_url":"https://github.com/dotnet/roslyn/milestones/1.2","labels_url":"https://api.github.com/repos/dotnet/roslyn/milestones/4/labels","id":937402,"number":4,"title":"1.2","description":"This is our 1.2 Milestone.\r\n\r\n<!---\r\n@huboard:{\"order\":2.0}\r\n-->\r\n","creator":{"login":"jaredpar","id":146967,"avatar_url":"https://avatars.githubusercontent.com/u/146967?v=3","gravatar_id":"","url":"https://api.github.com/users/jaredpar","html_url":"https://github.com/jaredpar","followers_url":"https://api.github.com/users/jaredpar/followers","following_url":"https://api.github.com/users/jaredpar/following{/other_user}","gists_url":"https://api.github.com/users/jaredpar/gists{/gist_id}","starred_url":"https://api.github.com/users/jaredpar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaredpar/subscriptions","organizations_url":"https://api.github.com/users/jaredpar/orgs","repos_url":"https://api.github.com/users/jaredpar/repos","events_url":"https://api.github.com/users/jaredpar/events{/privacy}","received_events_url":"https://api.github.com/users/jaredpar/received_events","type":"User","site_admin":false},"open_issues":577,"closed_issues":209,"state":"open","created_at":"2015-01-15T20:48:55Z","updated_at":"2015-12-07T04:48:35Z","due_on":null,"closed_at":null},"comments":13,"created_at":"2015-12-07T03:29:59Z","updated_at":"2015-12-07T18:01:50Z","closed_at":null,"body":"Comments and white space should not change the deterministic build output of an assembly.  Right now it is doing so indirectly via the PDB hash.  \r\n\r\nIn order to calculate a deterministic PDB guid we hash all of the information sent to the PDB.  That hash is then broken up into the guid value used as the ID.  This id is embedded into the DLL / EXE and thus code input which changes the PDB ID, also impacts determinism.\r\n\r\nPresently we are including the checksum of every file in the compilation in the PDB hash\r\n\r\nhttps://github.com/dotnet/roslyn/blob/master/src/Compilers/Core/Portable/NativePdbWriter/PdbWriter.cs#L980\r\n\r\nThis means any white space or comment changes will indirectly impact determinism.  This block should be removed.  "},"comment":{"url":"https://api.github.com/repos/dotnet/roslyn/issues/comments/162609153","html_url":"https://github.com/dotnet/roslyn/issues/7270#issuecomment-162609153","issue_url":"https://api.github.com/repos/dotnet/roslyn/issues/7270","id":162609153,"user":{"login":"tmat","id":41759,"avatar_url":"https://avatars.githubusercontent.com/u/41759?v=3","gravatar_id":"","url":"https://api.github.com/users/tmat","html_url":"https://github.com/tmat","followers_url":"https://api.github.com/users/tmat/followers","following_url":"https://api.github.com/users/tmat/following{/other_user}","gists_url":"https://api.github.com/users/tmat/gists{/gist_id}","starred_url":"https://api.github.com/users/tmat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmat/subscriptions","organizations_url":"https://api.github.com/users/tmat/orgs","repos_url":"https://api.github.com/users/tmat/repos","events_url":"https://api.github.com/users/tmat/events{/privacy}","received_events_url":"https://api.github.com/users/tmat/received_events","type":"User","site_admin":false},"created_at":"2015-12-07T18:01:50Z","updated_at":"2015-12-07T18:01:50Z","body":"@jaredpar Well, either the PDB ID won't represent the content of the PDB file or the PE GUID won't represent the content of the PE file. "}}