-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deprecate the C++ bindings #150
Comments
Originally by tdd on 2009-04-07 07:10:13 -0500 Reviewed proposal looks fine to me. |
Originally by gropp on 2009-04-07 08:57:50 -0500 Reviewed and ok. However, in at least one place, I'd like to see a rationale - just deprecating it without comment will leave everyone guessing. At the very least, we should say whether the MPI Forum plans to develop an alternative C++ binding or abandon any MPI Forum blessed C++ binding. |
Originally by goodell on 2009-04-07 09:18:11 -0500 Section A.4.14 needs to be addressed. It is currently an empty list of deprecated C++ bindings. Presumably you need to delete this section otherwise you will need to include the entirety of the C++ binding in this section after this change. I also would like to see a rationale somewhere, although I'm not sure that I have a good suggestion for where. Also, you must pick a change-log entry, the ticket has ambiguous instructions to the chapter authors right now. I also prefer the latter choice of change-log entry. -Dave |
Originally by tdd on 2009-04-07 09:26:16 -0500 I was feeling a little concerned as to whether the forum really knows the number of users/ISV's that might get affected by deprecating and eventually removing the C++ bindings. So I sent some email internally to Sun and there is an opinion that the number is non-zero. I am still trying to find if it is a significant non-zero or not. But currently I've been told the following uses the C++ bindings: StarCCM+, lammps (Sandia), and Sequoia UMT benchmark (LLNL). It seems to me that the forum should take a survey of users, ISV's and possibly the open source community (via Slashdot or Freashmeat). There was another concern that the BOOST implementation that might be a reasonable replace has a set of issues itself. For example it only supports the majority of MPI 1.1. |
Originally by hubertritzdorf on 2009-04-07 09:33:41 -0500 When I remember correctly, we have a small number of C++ users which combine |
Originally by erezh on 2009-04-07 09:39:09 -0500 okay with me; I would like to see a rational and alternative to users who are using the C++ bindings. |
Originally by jsquyres on 2009-04-07 10:07:22 -0500 Replying to goodell:
This table was already removed in #11 (which is already passed).
Yes; good suggestion from you and others -- I added a rationale section in the deprecated chapter. We can move it elsewhere (or add xrefs to it?) if people want.
Fair enough; done. I picked the latter as well. Please re-review! |
Originally by htor on 2009-04-07 10:19:50 -0500 I'm fine with this now - reviewed ok. |
Originally by goodell on 2009-04-07 10:35:22 -0500 The rationale needs some work. Text consistency: Also, I don't think that we use "ABI" anywhere else in the standard. This needs a definition or at least to be fully expanded. I think "have added" --> "add" reads better in the rationale. I think that "that is likely more expressive" --> "that are likely more expressive" and "and is not suitable" --> "and are not suitable" reads better (changing the verb to match up with "packages" instead of "functionality"). I'm also not sure that you want to claim that converting C++ binding usage to C binding usage is easy. Users may feel that you are belittling the potentially substantial effort involved in making those changes to their software. |
Originally by jsquyres on 2009-04-07 11:26:25 -0500 Put in a bunch of changes from Dave's comments. Please re-review! |
Originally by goodell on 2009-04-07 11:32:40 -0500 Reviewed ok. |
Originally by gropp on 2009-04-07 12:27:40 -0500 Reviewed fine. I added a missing period in the first sentence of the proposed change. |
Originally by tdd on 2009-04-07 12:49:54 -0500 Reviewed ok. |
Originally by erezh on 2009-04-07 13:30:02 -0500 OK! |
Originally by tdd on 2009-04-08 08:16:01 -0500 Replying to tdd:
Wanted to update that I checked the lammps and UMT code and they DO NOT use the MPI C++ bindings. They use the C bindings in C++ code. I am trying to confirm whether StarCCM+ uses C++ bindings too. I've also contacted Kanan of HP to see if they have any input on this issue. I am still searching for codes that use the C++ bindings but so far I probably owe Jeff Squyres +5 beers. |
Originally by hubertritzdorf on 2009-04-08 08:55:07 -0500 It's ok for me. |
Originally by jsquyres on 2009-04-08 14:08:49 -0500 Per discussion in Chicago (had to leave the meeting before I could record it on the ticket here -- it was agreed that this change could come in after the ticket was transitioned to "had 1st reading"), it was agreed to alter the LaTeX macro "mpicppemptybind" to add a notice to all C++ bindings throughout the document that that binding is deprecated. The rationale is that all other deprecated functions are in a special chapter -- we are deprecating the C++ bindings but not [yet] removing them from the rest of the document. So we should at least put a note by every binding. Here is a suggestion for the new value of the LaTeX macro in mpi-macs.tex; the general form was agreed upon in Chicago as being "the least sucky". I leave it to LaTeX wizards to reformat/change this macro if desired.
|
Originally by tdd on 2009-04-21 09:42:30 -0500 Replying to tdd:
Hopefully my last update to this ticket. I've contacted CD-Adapco and was told they wrapped the C-bindings with their own C++ code so no issue for them. HP (Kanaan) replied and said they have a handful of ISV's that use the bindings but did not have any issues with the bindings being removed since they can still support the old bindings in their product. After further internal investigation within Sun I believe there is not a significant base of C++ binding usage and we would probably adopt HP's tactic of supporting the old C++ binding. Sun does not have any issue with this ticket and voting for deprecation of the C++ bindings. |
Originally by davesolt on 2009-05-12 08:46:36 -0500 HP-MPI queried about 30 ISV applications and only Abaqus/Std and Exp use the C++ interfaces. |
Originally by jsquyres on 2009-06-09 07:45:49 -0500 Attachment added: |
Originally by RolfRabenseifner on 2009-06-12 10:18:23 -0500 The Change-Log entry does not fiit to the usual form. The form should be: Section 2.6 on page 15, Section 2.6.4 on page 18, and Section 16.1 on page 449.[[BR]] |
Originally by RolfRabenseifner on 2009-08-03 14:13:39 -0500 Attachment added: |
Originally by htor on 2009-08-22 14:43:56 -0500 PDF reviewed OK (I'm not sure if we want to mention the deprecation for each item listed in A.4, however, it seems to be a relict from the macro and doesn't harm) |
Originally by jsquyres on 2009-08-24 17:58:03 -0500 ticket150.pdf reviewed ok. |
Originally by RolfRabenseifner on 2009-08-26 06:42:22 -0500 The text-output of "make reviewchangeonlydoc" and "make cleandoc/cleanbwdoc/bookprintingdoc" are on all pages and lines identical with one exception: On page 570:47-48 the page-breaking is different. I do not know the reason. This is not a real problem, because the rest of the standard could be |
Originally by RolfRabenseifner on 2009-08-28 16:32:08 -0500 Bill solved this prooblem. |
Originally by jsquyres on 2009-08-31 14:17:33 -0500 Still need more PDF reviews (Torsten H and Rolf R did already; thanks!):
|
Originally by gropp on 2009-08-31 16:46:34 -0500 Reviewed master copy and ok. |
Originally by goodell on 2009-09-01 06:58:59 -0500 Are the curly braces around the deprecated C++ bindings going to be present in the final standard? Or are they just an artifact of the review copy? They look strange to me. Modulo this issue the PDF looks good to me. |
Originally by hubertritzdorf on 2009-09-01 08:30:13 -0500 PDF review: OK |
Originally by RolfRabenseifner on 2009-09-01 08:35:12 -0500 Replying to goodell:
Yes, the curly braces stay. They have been part of the ticket's solution, Now, 5 okays are there and I would propose to set this ticket to "Complete". |
Originally by jsquyres on 2009-09-01 22:26:14 -0500 Replying to goodell:
Yes, (unfortunately) this is what the Forum opted for when we had a beauty contest of a few different styles of how to mark the bindings as deprecated (I think this was late on a Wednesday morning of a Chicago meeting). |
Originally by jsquyres on 2009-09-02 03:04:58 -0500 Got enough reviews. I'm marking this as both "Ticket complete" states and closing the ticket. |
Originally by chsi on 2009-09-03 04:50:07 -0500 It seems as if "MPI::User_function" in chapter 5.9.5 seems to be overlooked - it is not marked as deprecated. |
Originally by jsquyres on 2009-09-03 05:12:09 -0500 Good call -- Terry Dontje just found another C++ typedef in the IO chapter that wasn't deprecated. Closer inspection shows that we forgot to put the "deprecated" magic in the C++ typedef latex macro. It's being fixed right now... |
Originally by hubertritzdorf on 2009-09-03 12:00:40 -0500 Does this also include the MPI::{Comm,Win,File}::Errhandler_function definitions in the master document (page 295, 296, 298) ? |
Move the regression test for issue #105 (MPI C++ bindings broken by a Melissa header) from the Melissa tests into the find-and-link test for the Melissa C++ bindings. Moreover, the test is modified and uses only the MPI C bindings because the C++ MPI bindings were deprecated in the MPI 2.2 standard released in 2009 and may not be present at all. mpi-forum/mpi-forum-historic#150
…pi-forum/mpi-forum-historic#150) Update CMake for Mac Add options for compiling with ASAN & UBSAN Remove nproc in favor of proc.size() Close ZMQ sockets in reverse order to prevent access after removal/move of subsequent vector entries
Originally by jsquyres on 2009-04-06 13:38:13 -0500
Let's deprecate the C++ bindings in MPI-2.2 so that they can be removed in MPI-3.0.
History
The MPI C++ bindings were added in MPI-2.0.
They have not added as much value as we thought they would, and we have spent a considerable amount of time maintaining them. Better C++ MPI bindings have emerged elsewhere (e.g., Boost.MPI). So let's deprecate the C++ bindings
Proposed Solution
Add the following sentence in multiple places throughout the MPI-2.1 standard:
The C++ language bindings have been deprecated.
Also add the following text to the end of Chapter 15, "Deprecated Functions":
15.2 Deprecated since MPI-2.2
The entire set of C++ language bindings have been deprecated.
Rationale. The C++ bindings add minimal functionality over the C bindings while incurring a significant amount of maintenance to the MPI specification. Since the C++ bindings are effectively a one-to-one mapping of the C bindings, it should be relatively easy to convert existing C++ MPI applications to use the MPI C bindings. Additionally, there are third party packages available that provide C++ class library functionality (i.e., C++-specific functionality layered on top of the MPI C bindings) that are likely more expressive and/or natural to C++ programmers and are not suitable for standardization in this specification.
-ADDED AS RESULT OF CHICAGO MEETING*
Additionally, change the \mpicppemptybind Latex macro so that every C++ binding shows up as deprecated throughout the text. Here is the diff showing what was agreed upon at the Chicago meeting (obviously, "XYZ" will need to be replaced with the actual section number), and I have attached a PDF showing a sample output:
The text was updated successfully, but these errors were encountered: