{"action":"created","issue":{"url":"https://api.github.com/repos/wesbland/mpi-forum-historic/issues/59","repository_url":"https://api.github.com/repos/wesbland/mpi-forum-historic","labels_url":"https://api.github.com/repos/wesbland/mpi-forum-historic/issues/59/labels{/name}","comments_url":"https://api.github.com/repos/wesbland/mpi-forum-historic/issues/59/comments","events_url":"https://api.github.com/repos/wesbland/mpi-forum-historic/issues/59/events","html_url":"https://github.com/wesbland/mpi-forum-historic/issues/59","id":166680367,"number":59,"title":"Clarification on MPI::FILE_NULL, MPI::WIN_NULL and MPI::COMM_NULL","user":{"login":"wesbland","id":1561207,"avatar_url":"https://avatars.githubusercontent.com/u/1561207?v=3","gravatar_id":"","url":"https://api.github.com/users/wesbland","html_url":"https://github.com/wesbland","followers_url":"https://api.github.com/users/wesbland/followers","following_url":"https://api.github.com/users/wesbland/following{/other_user}","gists_url":"https://api.github.com/users/wesbland/gists{/gist_id}","starred_url":"https://api.github.com/users/wesbland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wesbland/subscriptions","organizations_url":"https://api.github.com/users/wesbland/orgs","repos_url":"https://api.github.com/users/wesbland/repos","events_url":"https://api.github.com/users/wesbland/events{/privacy}","received_events_url":"https://api.github.com/users/wesbland/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"wesbland","id":1561207,"avatar_url":"https://avatars.githubusercontent.com/u/1561207?v=3","gravatar_id":"","url":"https://api.github.com/users/wesbland","html_url":"https://github.com/wesbland","followers_url":"https://api.github.com/users/wesbland/followers","following_url":"https://api.github.com/users/wesbland/following{/other_user}","gists_url":"https://api.github.com/users/wesbland/gists{/gist_id}","starred_url":"https://api.github.com/users/wesbland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wesbland/subscriptions","organizations_url":"https://api.github.com/users/wesbland/orgs","repos_url":"https://api.github.com/users/wesbland/repos","events_url":"https://api.github.com/users/wesbland/events{/privacy}","received_events_url":"https://api.github.com/users/wesbland/received_events","type":"User","site_admin":false},"assignees":[{"login":"wesbland","id":1561207,"avatar_url":"https://avatars.githubusercontent.com/u/1561207?v=3","gravatar_id":"","url":"https://api.github.com/users/wesbland","html_url":"https://github.com/wesbland","followers_url":"https://api.github.com/users/wesbland/followers","following_url":"https://api.github.com/users/wesbland/following{/other_user}","gists_url":"https://api.github.com/users/wesbland/gists{/gist_id}","starred_url":"https://api.github.com/users/wesbland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wesbland/subscriptions","organizations_url":"https://api.github.com/users/wesbland/orgs","repos_url":"https://api.github.com/users/wesbland/repos","events_url":"https://api.github.com/users/wesbland/events{/privacy}","received_events_url":"https://api.github.com/users/wesbland/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/wesbland/mpi-forum-historic/milestones/6","html_url":"https://github.com/wesbland/mpi-forum-historic/milestones/2009/04/06%20Chicago","labels_url":"https://api.github.com/repos/wesbland/mpi-forum-historic/milestones/6/labels","id":1894746,"number":6,"title":"2009/04/06 Chicago","description":"","creator":{"login":"wesbland","id":1561207,"avatar_url":"https://avatars.githubusercontent.com/u/1561207?v=3","gravatar_id":"","url":"https://api.github.com/users/wesbland","html_url":"https://github.com/wesbland","followers_url":"https://api.github.com/users/wesbland/followers","following_url":"https://api.github.com/users/wesbland/following{/other_user}","gists_url":"https://api.github.com/users/wesbland/gists{/gist_id}","starred_url":"https://api.github.com/users/wesbland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wesbland/subscriptions","organizations_url":"https://api.github.com/users/wesbland/orgs","repos_url":"https://api.github.com/users/wesbland/repos","events_url":"https://api.github.com/users/wesbland/events{/privacy}","received_events_url":"https://api.github.com/users/wesbland/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":1,"state":"closed","created_at":"2016-07-20T18:12:54Z","updated_at":"2016-07-20T20:58:26Z","due_on":"2009-04-08T04:00:00Z","closed_at":"2016-07-20T18:12:54Z"},"comments":40,"created_at":"2016-07-20T20:57:54Z","updated_at":"2016-07-20T21:29:18Z","closed_at":null,"body":"**Originally by _hubertritzdorf_ on 2008-11-27 16:07:05 -0600**\n\n___\n## Description\n\nAn error handler can be assigned to MPI::FILE_NULL by function Set_errhandler. This error handler is used as default error handler for file operations.\nBecause Set_errhandler is not const, setting of default error handler fails for MPI::FILE_NULL in the compilation phase.\n\nAn error handler can be assigned also to MPI::COMM_NULL and MPI::WIN_NULL.\n\nStraw Vote, 4/7/09.[[BR]]\nThe question was raised whether changing the binding or adding additional routine definitions with const was preferred.  Adding routines rather than changing them may eliminate possible ABI changes.  A straw vote was held on whether to replace or add to the relevant routines.[[BR]]\nChange Routines: 4[[BR]]\nAdd Routines (no ABI change): 5[[BR]]\nAbstain: 17\n\n## History\n\nMPI::FILE_NULL and MPI:WIN_NULL are listed together with MPI::INFO_NULL in the Section A.2.1 Defined Constants of the MPI 2.0 Standard (Page 305, Lines 36-38).\nThe C++ type of MPI::FILE_NULL, MPI:WIN_NULL and MPI::INFO_NULL is not defined in\nSection A.1.1 Defined Constants (Page 496, Lines 44 and 46). Probably, since MPI::FILE_NULL, MPI::WIN_NULL and MPI::INFO_NULL were not defined in Annex B.2 of the MPI 2.0 standard.\n\nThe const qualifier for MPI::FILE_NULL and MPI::WIN_NULL was not removed in the MPI 2.1 standardization process, since it was discussed to change the definition of Set_errhandler function.\n\n## Proposed Solution\n\nWe cannot change the C++ ABI; this severly limits what solutions can\nbe proposed.  This issue is further complicated by the fact that we're\ndeprecating the C++ bindings, so there are no long-term fixes\navailable (e.g., we won't be filing an MPI-3.0 ticket to *really*\nfix the problem).  :-(\n\nSo what we propose is to fix **only exactly this problem** and no\nothers surrounding \"const\" C++ issues.\n\nThe exact type of MPI::FILE_NULL and MPI::WIN_NULL were not specified\nin MPI-2.1 (i.e., whether they were const or not).  Some MPI\nimplementations may have them const, some may not.  We cannot change\nthe table on MPI-2.1 p496:44-46 to add a specific type for\nMPI::FILE_NULL, MPI::WIN_NULL (and MPI::INFO_NULL, although that's not\nthe subject of the ticket here) without potentially breaking ABI for\nsome MPI implementation.  So we propose to **leave them unspecified.**\n\nNote: #107 also talks about these 3 entries.\n\nThe \"minimum distance\" solution is to simply add const versions of the\nSet_errhandler functions for MPI::Win and MPI::File.  This will allow\nMPI::FILE_NULL and MPI::WIN_NULL -- regardless of whether they are\nconst or not -- to invoke these functions.\n\nAdd the following function after the existing MPI::Win::Set_errhandler\nfunction on p268:31:\n\n```\n#!c\nvoid MPI::Win::Set_errhandler (const MPI::Errhandler& errhandler) const\n```\n\n\nAdd the following after the paragraph on p268:34:\n\n  Rationale.  The MPI::Win class has two Set_errhandler() methods\n  defined on it because the it is undefined as to whether\n  MPI::WIN_NULL is const or not.  It is not possible to define whether\n  this handle is const or not without breaking existing binary MPI\n  applications.  Note that the same issue exists for the MPI::File\n  class and its Set_errhandler() method, but does *not* exist for\n  the MPI::Comm class because MPI::COMM_WORLD and MPI::COMM_SELF are\n  defined to be not const.\n\nAnd add the following function after the existing\nMPI::File::Set_errhandler function on p269:42:\n\n```\n#!c\nvoid MPI::File::Set_errhandler (const MPI::Errhandler& errhandler) const\n```\n\nAdd the following prototype after p554:12:\n\n```\n#!c\nvoid File::Set_errhandler (const MPI::Errhandler& errhandler) const\n```\n\nAnd add the following prototype after p554:12:\n\n```\n#!c\nvoid Win::Set_errhandler (const MPI::Errhandler& errhandler) const\n```\n\n\nPlease see #150 for more details on deprecating the C++ bindings.  If\nthat ticket passes, this problem effectively goes away -- we don't\nneed to do anything more; this ugliness disappears.\n\n## Impact on Implementations\n\nAdd 2 more minor functions.  Very easy to implement.\n\n## Impact on Applications / Users\n\nNothing.\n \n## Entry for the Change Log\n\nSection 16.1.6 on page 453.[[BR]]\n"},"comment":{"url":"https://api.github.com/repos/wesbland/mpi-forum-historic/issues/comments/234089095","html_url":"https://github.com/wesbland/mpi-forum-historic/issues/59#issuecomment-234089095","issue_url":"https://api.github.com/repos/wesbland/mpi-forum-historic/issues/59","id":234089095,"user":{"login":"wesbland","id":1561207,"avatar_url":"https://avatars.githubusercontent.com/u/1561207?v=3","gravatar_id":"","url":"https://api.github.com/users/wesbland","html_url":"https://github.com/wesbland","followers_url":"https://api.github.com/users/wesbland/followers","following_url":"https://api.github.com/users/wesbland/following{/other_user}","gists_url":"https://api.github.com/users/wesbland/gists{/gist_id}","starred_url":"https://api.github.com/users/wesbland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wesbland/subscriptions","organizations_url":"https://api.github.com/users/wesbland/orgs","repos_url":"https://api.github.com/users/wesbland/repos","events_url":"https://api.github.com/users/wesbland/events{/privacy}","received_events_url":"https://api.github.com/users/wesbland/received_events","type":"User","site_admin":false},"created_at":"2016-07-20T21:29:17Z","updated_at":"2016-07-20T21:29:17Z","body":"**Originally by _goodell_ on 2009-04-07 17:32:23 -0500**\n\n___\nReviewed ok."}}
{"actor":{"display_login":"wesbland"}}