{"action":"created","issue":{"url":"https://api.github.com/repos/mpi-forum/mpi-issues/issues/51","repository_url":"https://api.github.com/repos/mpi-forum/mpi-issues","labels_url":"https://api.github.com/repos/mpi-forum/mpi-issues/issues/51/labels{/name}","comments_url":"https://api.github.com/repos/mpi-forum/mpi-issues/issues/51/comments","events_url":"https://api.github.com/repos/mpi-forum/mpi-issues/issues/51/events","html_url":"https://github.com/mpi-forum/mpi-issues/issues/51","id":148694209,"number":51,"title":"Deprecate MPI_SIZEOF in MPI-4.0","user":{"login":"jsquyres","id":617316,"avatar_url":"https://avatars.githubusercontent.com/u/617316?v=3","gravatar_id":"","url":"https://api.github.com/users/jsquyres","html_url":"https://github.com/jsquyres","followers_url":"https://api.github.com/users/jsquyres/followers","following_url":"https://api.github.com/users/jsquyres/following{/other_user}","gists_url":"https://api.github.com/users/jsquyres/gists{/gist_id}","starred_url":"https://api.github.com/users/jsquyres/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsquyres/subscriptions","organizations_url":"https://api.github.com/users/jsquyres/orgs","repos_url":"https://api.github.com/users/jsquyres/repos","events_url":"https://api.github.com/users/jsquyres/events{/privacy}","received_events_url":"https://api.github.com/users/jsquyres/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mpi-forum/mpi-issues/labels/mpi-4.0","name":"mpi-4.0","color":"fef2c0"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/mpi-forum/mpi-issues/milestones/4","html_url":"https://github.com/mpi-forum/mpi-issues/milestones/2016-06%20Bellevue,%20USA","labels_url":"https://api.github.com/repos/mpi-forum/mpi-issues/milestones/4/labels","id":1331008,"number":4,"title":"2016-06 Bellevue, USA","description":"","creator":{"login":"jsquyres","id":617316,"avatar_url":"https://avatars.githubusercontent.com/u/617316?v=3","gravatar_id":"","url":"https://api.github.com/users/jsquyres","html_url":"https://github.com/jsquyres","followers_url":"https://api.github.com/users/jsquyres/followers","following_url":"https://api.github.com/users/jsquyres/following{/other_user}","gists_url":"https://api.github.com/users/jsquyres/gists{/gist_id}","starred_url":"https://api.github.com/users/jsquyres/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsquyres/subscriptions","organizations_url":"https://api.github.com/users/jsquyres/orgs","repos_url":"https://api.github.com/users/jsquyres/repos","events_url":"https://api.github.com/users/jsquyres/events{/privacy}","received_events_url":"https://api.github.com/users/jsquyres/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2015-09-30T12:29:27Z","updated_at":"2016-04-15T15:39:04Z","due_on":"2016-06-08T05:00:00Z","closed_at":null},"comments":3,"created_at":"2016-04-15T15:39:04Z","updated_at":"2016-04-22T13:04:44Z","closed_at":null,"body":"# Problem\r\n\r\nMPI_SIZEOF is a Fortran-only subroutine in MPI that was created in the mid-90s because the Fortran language didn't have a way to get the size of a type.\r\n\r\nF08 has defined both `storage_size()` and `c_sizeof()`. Neither are exactly the same as MPI_SIZEOF, but they're close enough (`storage_size()` returns the size of an individual element in bits, and `c_sizeof()` is exactly like C's `sizeof()`, in that it will return the size of an entire array if you pass it an array -- not an individual element).\r\n\r\nRegardless, the language itself provides mechanisms to get the size of the type, so we should stop providing the MPI workaround.\r\n\r\n# Proposal\r\n\r\nThis ticket is about deprecating MPI_SIZEOF in MPI-4.\r\n\r\n# Changes to the Text\r\n\r\n* Add MPI_SIZEOF to deprecated chapter\r\n* Remove MPI_SIZEOF definition from bindings chapter\r\n* Remove a few text references to MPI_SIZEOF\r\n* Update a few examples to use `storage_size()` instead of MPI_SIZEOF\r\n\r\nSee the PR: mpi-forum/mpi-standard#17\r\n\r\n[See the PDF](https://github.com/mpi-forum/mpi-issues/files/221301/mpi-report-deprecate-mpi-sizeof.pdf)\r\n\r\n# Impact on Implementations\r\n\r\nNone (this is just deprecation).\r\n\r\n# Impact on Users\r\n\r\nTechnically: none (this is just deprecation).  But the small number of users who are actually using it should convert to `storage_size()` and/or `c_sizeof()`.\r\n\r\n# References\r\n\r\nIn the Dec 2014 MPI Forum meeting (California, USA), Forum Feedback was given to overwhelmingly deprecate MPI_SIZEOF (yes: 25, no: 0, abstain: 2)."},"comment":{"url":"https://api.github.com/repos/mpi-forum/mpi-issues/issues/comments/213421568","html_url":"https://github.com/mpi-forum/mpi-issues/issues/51#issuecomment-213421568","issue_url":"https://api.github.com/repos/mpi-forum/mpi-issues/issues/51","id":213421568,"user":{"login":"RolfRabenseifner","id":10879604,"avatar_url":"https://avatars.githubusercontent.com/u/10879604?v=3","gravatar_id":"","url":"https://api.github.com/users/RolfRabenseifner","html_url":"https://github.com/RolfRabenseifner","followers_url":"https://api.github.com/users/RolfRabenseifner/followers","following_url":"https://api.github.com/users/RolfRabenseifner/following{/other_user}","gists_url":"https://api.github.com/users/RolfRabenseifner/gists{/gist_id}","starred_url":"https://api.github.com/users/RolfRabenseifner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RolfRabenseifner/subscriptions","organizations_url":"https://api.github.com/users/RolfRabenseifner/orgs","repos_url":"https://api.github.com/users/RolfRabenseifner/repos","events_url":"https://api.github.com/users/RolfRabenseifner/events{/privacy}","received_events_url":"https://api.github.com/users/RolfRabenseifner/received_events","type":"User","site_admin":false},"created_at":"2016-04-22T13:04:44Z","updated_at":"2016-04-22T13:04:44Z","body":"I'm also good with this, but technically, in my opinion,\r\nthe following changes are needed:\r\n\r\n- Page 604, lines 19-20 of\r\n  https://github.com/mpi-forum/mpi-issues/files/221301/mpi-report-deprecate-mpi-sizeof.pdf\r\n  read\r\n\r\n    The following Fortran subroutines are deprecated; \r\n    the Fortran language storage_size() and c_sizeof() \r\n    intrinsic functions provide this functionality.\r\n\r\n  but should read (proposal)\r\n\r\n    The following Fortran subroutines are deprecated; \r\n    the Fortran language storage_size() and c_sizeof() \r\n    intrinsic functions provide similar functionality.\r\n    Whereas MPI_SIZEOF() and c_sizeof() provide the size\r\n    in bytes, the intrinsic storage_size() provides the\r\n    size in bits.  \r\n\r\n  Otherwise it is a direct path to the hell when people\r\n  updating there deprecated source code.\r\n\r\n\r\n- Page 631, lines 5-8 read\r\n\r\n    MPI_TYPE_MATCH_SIZE can be used to obtain a size-specific\r\n    type that matches a Fortran numeric intrinsic type by \r\n    first calling storage_size()in order to compute the\r\n    variable size, and then calling MPI_TYPE_MATCH_SIZE to find\r\n    a suitable datatype. In C, one can use the C function \r\n    sizeof(), instead of storage_size().\r\n\r\n  It is necessary to mention that storage_size() returns \r\n  bits and not bytes. It should be written in a way that a \r\n  Fortran reader Need not to read the C text and vice versa.\r\n  Proposal:\r\n\r\n    MPI_TYPE_MATCH_SIZE can be used to obtain a size-specific\r\n    type that matches a Fortran numeric intrinsic type by \r\n    first calling storage_size() in order to compute the\r\n    variable size in bits, deviding it by 8, \r\n    and then calling MPI_TYPE_MATCH_SIZE to find\r\n    a suitable datatype. In C, one can use the C function\r\n    sizeof(), which returns the size in bytes, \r\n    instead of storage_size() (which returns the size in bits).\r\n\r\n\r\n- On page 18 in Table 2.1 the following mail should be added:\r\n\r\n   MPI_SIZEOF  MPI-4.0   ____  storage_size() 5)\r\n\r\n  With footnote \r\n   5) Fortran intrinsic. It returs the size in bits instead of bytes. \r\n \r\n\r\n- In the General index on page 721, I would recommend to add \r\n  the keyword \"MPI_SIZEOF and storage_size()\"\r\n  and all Locations of the both routines.\r\n"}}