{"action":"created","issue":{"url":"https://api.github.com/repos/sympy/csympy/issues/366","labels_url":"https://api.github.com/repos/sympy/csympy/issues/366/labels{/name}","comments_url":"https://api.github.com/repos/sympy/csympy/issues/366/comments","events_url":"https://api.github.com/repos/sympy/csympy/issues/366/events","html_url":"https://github.com/sympy/csympy/pull/366","id":54115804,"number":366,"title":"Use placement new in the C wrapper","user":{"login":"certik","id":20568,"avatar_url":"https://avatars.githubusercontent.com/u/20568?v=3","gravatar_id":"","url":"https://api.github.com/users/certik","html_url":"https://github.com/certik","followers_url":"https://api.github.com/users/certik/followers","following_url":"https://api.github.com/users/certik/following{/other_user}","gists_url":"https://api.github.com/users/certik/gists{/gist_id}","starred_url":"https://api.github.com/users/certik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/certik/subscriptions","organizations_url":"https://api.github.com/users/certik/orgs","repos_url":"https://api.github.com/users/certik/repos","events_url":"https://api.github.com/users/certik/events{/privacy}","received_events_url":"https://api.github.com/users/certik/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-01-12T22:23:05Z","updated_at":"2015-01-13T04:32:10Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/sympy/csympy/pulls/366","html_url":"https://github.com/sympy/csympy/pull/366","diff_url":"https://github.com/sympy/csympy/pull/366.diff","patch_url":"https://github.com/sympy/csympy/pull/366.patch"},"body":"This doesn't use any heap allocation, and it looks to me that a program in C should be as fast as an equivalent program in C++ now.\r\n\r\nThere are still things that need to be polished, for example I would like to get rid of declaring the `RCP<const Basic> *s2 = RCP_cast(s);` and just use `RCP_cast(s)` directly, but the compiler complains.\r\n\r\nThe `SIZE_OF_RCP_BASIC` thing is also not ideal, but we can't use `sizeof(RCP<const Basic>)` in the C header file, so I don't know how to do it any other way.\r\n\r\n/cc @isuruf, @fredrik-johansson"},"comment":{"url":"https://api.github.com/repos/sympy/csympy/issues/comments/69694143","html_url":"https://github.com/sympy/csympy/pull/366#issuecomment-69694143","issue_url":"https://api.github.com/repos/sympy/csympy/issues/366","id":69694143,"user":{"login":"certik","id":20568,"avatar_url":"https://avatars.githubusercontent.com/u/20568?v=3","gravatar_id":"","url":"https://api.github.com/users/certik","html_url":"https://github.com/certik","followers_url":"https://api.github.com/users/certik/followers","following_url":"https://api.github.com/users/certik/following{/other_user}","gists_url":"https://api.github.com/users/certik/gists{/gist_id}","starred_url":"https://api.github.com/users/certik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/certik/subscriptions","organizations_url":"https://api.github.com/users/certik/orgs","repos_url":"https://api.github.com/users/certik/repos","events_url":"https://api.github.com/users/certik/events{/privacy}","received_events_url":"https://api.github.com/users/certik/received_events","type":"User","site_admin":false},"created_at":"2015-01-13T04:32:10Z","updated_at":"2015-01-13T04:32:10Z","body":"Also we need to take into account alignment, see e.g. http://stackoverflow.com/questions/11214632/alignment-guarantees-of-static-char-array."}}