{"action":"created","issue":{"url":"https://api.github.com/repos/ceylon/ceylon-compiler/issues/2035","labels_url":"https://api.github.com/repos/ceylon/ceylon-compiler/issues/2035/labels{/name}","comments_url":"https://api.github.com/repos/ceylon/ceylon-compiler/issues/2035/comments","events_url":"https://api.github.com/repos/ceylon/ceylon-compiler/issues/2035/events","html_url":"https://github.com/ceylon/ceylon-compiler/issues/2035","id":56222887,"number":2035,"title":"@Annotations(@Annotation(\"shared\")) is amazingly wasteful","user":{"login":"gavinking","id":579974,"avatar_url":"https://avatars.githubusercontent.com/u/579974?v=3","gravatar_id":"","url":"https://api.github.com/users/gavinking","html_url":"https://github.com/gavinking","followers_url":"https://api.github.com/users/gavinking/followers","following_url":"https://api.github.com/users/gavinking/following{/other_user}","gists_url":"https://api.github.com/users/gavinking/gists{/gist_id}","starred_url":"https://api.github.com/users/gavinking/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gavinking/subscriptions","organizations_url":"https://api.github.com/users/gavinking/orgs","repos_url":"https://api.github.com/users/gavinking/repos","events_url":"https://api.github.com/users/gavinking/events{/privacy}","received_events_url":"https://api.github.com/users/gavinking/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ceylon/ceylon-compiler/labels/IN%20PROGRESS","name":"IN PROGRESS","color":"02d7e1"},{"url":"https://api.github.com/repos/ceylon/ceylon-compiler/labels/model-loader","name":"model-loader","color":"FF9400"}],"state":"open","locked":false,"assignee":{"login":"tombentley","id":879487,"avatar_url":"https://avatars.githubusercontent.com/u/879487?v=3","gravatar_id":"","url":"https://api.github.com/users/tombentley","html_url":"https://github.com/tombentley","followers_url":"https://api.github.com/users/tombentley/followers","following_url":"https://api.github.com/users/tombentley/following{/other_user}","gists_url":"https://api.github.com/users/tombentley/gists{/gist_id}","starred_url":"https://api.github.com/users/tombentley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tombentley/subscriptions","organizations_url":"https://api.github.com/users/tombentley/orgs","repos_url":"https://api.github.com/users/tombentley/repos","events_url":"https://api.github.com/users/tombentley/events{/privacy}","received_events_url":"https://api.github.com/users/tombentley/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/ceylon/ceylon-compiler/milestones/11","labels_url":"https://api.github.com/repos/ceylon/ceylon-compiler/milestones/11/labels","id":809477,"number":11,"title":"1.2","description":"","creator":{"login":"tombentley","id":879487,"avatar_url":"https://avatars.githubusercontent.com/u/879487?v=3","gravatar_id":"","url":"https://api.github.com/users/tombentley","html_url":"https://github.com/tombentley","followers_url":"https://api.github.com/users/tombentley/followers","following_url":"https://api.github.com/users/tombentley/following{/other_user}","gists_url":"https://api.github.com/users/tombentley/gists{/gist_id}","starred_url":"https://api.github.com/users/tombentley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tombentley/subscriptions","organizations_url":"https://api.github.com/users/tombentley/orgs","repos_url":"https://api.github.com/users/tombentley/repos","events_url":"https://api.github.com/users/tombentley/events{/privacy}","received_events_url":"https://api.github.com/users/tombentley/received_events","type":"User","site_admin":false},"open_issues":26,"closed_issues":147,"state":"open","created_at":"2014-10-01T08:51:07Z","updated_at":"2015-02-03T11:04:19Z","due_on":"2014-11-02T23:00:00Z","closed_at":null},"comments":11,"created_at":"2015-02-02T11:05:28Z","updated_at":"2015-02-03T13:52:20Z","closed_at":null,"body":"Check this out:\r\n\r\n```java\r\n@.com.redhat.ceylon.compiler.java.metadata.Ceylon(major = 8)\r\n@.ceylon.language.DocAnnotation$annotation$(description = \"Hello world\")\r\n@.ceylon.language.AuthorsAnnotation$annotation$(authors = \"Gavin\")\r\n@.com.redhat.ceylon.compiler.java.metadata.Annotations({\r\n        @.com.redhat.ceylon.compiler.java.metadata.Annotation(\r\n                value = \"doc\",\r\n                arguments = {\"Hello world\"}),\r\n        @.com.redhat.ceylon.compiler.java.metadata.Annotation(\r\n                value = \"by\",\r\n                arguments = {\"Gavin\"})})\r\ninterface Stuff {}\r\n```\r\n\r\nDuplicate information is stored in a very wasteful format for no apparent reason. I propose that:\r\n\r\n1. we stop storing doc annotation and user-defined annotations in `@Annotations`, and\r\n2. we encode language annotations into @Annotations using a `modifiers` integer.\r\n\r\nThis could be done without breaking backwards compatibility."},"comment":{"url":"https://api.github.com/repos/ceylon/ceylon-compiler/issues/comments/72653207","html_url":"https://github.com/ceylon/ceylon-compiler/issues/2035#issuecomment-72653207","issue_url":"https://api.github.com/repos/ceylon/ceylon-compiler/issues/2035","id":72653207,"user":{"login":"FroMage","id":179265,"avatar_url":"https://avatars.githubusercontent.com/u/179265?v=3","gravatar_id":"","url":"https://api.github.com/users/FroMage","html_url":"https://github.com/FroMage","followers_url":"https://api.github.com/users/FroMage/followers","following_url":"https://api.github.com/users/FroMage/following{/other_user}","gists_url":"https://api.github.com/users/FroMage/gists{/gist_id}","starred_url":"https://api.github.com/users/FroMage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FroMage/subscriptions","organizations_url":"https://api.github.com/users/FroMage/orgs","repos_url":"https://api.github.com/users/FroMage/repos","events_url":"https://api.github.com/users/FroMage/events{/privacy}","received_events_url":"https://api.github.com/users/FroMage/received_events","type":"User","site_admin":false},"created_at":"2015-02-03T13:52:20Z","updated_at":"2015-02-03T13:52:20Z","body":"I don't get it. If we're not compiling the language module, then `@Shared$annotation` must be resolvable."}}