Skip to content
Jeff Squyres edited this page Mar 18, 2020 · 5 revisions

Mechanical / logistical things to fix:

  • revamp regression

    • cleaner/tests
    • accept the weird macro situations
      • "skipping due to weird macros", checked by hand so far
      • MPI_Alloc_mem
      • MPI_Win_allocate
      • MPI_Win_allocate_shared
      • MPI_Win_shared_query
    • allow plugin based architecture, find specials
      • find parameters with different names
      • find differing LIS types without whole diffing
    • F08 POLY expressed causes name collision, not important for regression, but for comparison
      • how can we identify the polymorphic F08 bindings? there is no name difference...
  • revamp KIND system

    • rename KINDs to reasonable/understandable names
    • simple maps no longer capture everything required
    • required refactor and rethink
  • pythonization

    • the function parameter generation only for large variants abuses the postfix parameter
      • this was never the intention of this parameter
      • future rewrite with the KIND map system will need to move POLY ideas into the generators themselves
      • this abuses the POLY kinds to cause multiple function expressions and the postfix interpreted as the POLY flag
    • the POLY expression needs to be moved done to generators
      • this will remove the need for the KIND maps as is
      • replace with a nicer to edit and more understandable system
      • this change will also allow testing POLY expression, not just the generator expression
  • chapter feedback

    • state corrections, from prior to 4.x, they were wrong before we just replicated
    • chapter 7 corrections, with changes to prior bindings, deferred until after pythonization
    • pt2pt INDEX -> non-negative
    • generally reduce KINDs, these are a lot of special cases, therefore shows complexity of our type system
  • nicer indentation through Latex

    • MPI_Comm_spawn_multiple
      • array_of_commands, array_of_argv, linebreak without indentation
    • MPI_Type_indexed
      • newtype parameter in LIS prototype is split to "new-\ntype"
        • just new line on comma, don't allow line breaking a parameter name
    • MPI_Error_class is split by a two pages table
  • header generation

    • constants and functions
    • how do we do predefined functions?
      • they are defined in "english"
      • we just give straight C code?
  • lemonspotter

    • integration (partially done) (functions were easy)
    • typing is complicated from current KINDs
  • Weird mpifoverloadOnlyInAnnex

    • MPI_ALLOC_MEM
    • MPI_WIN_ALLOCATE
    • MPI_WIN_ALLOCATE_SHARED
    • MPI_WIN_SHARED_QUERY
  • MPI_Copy_function and MPI_Delete_function are not found in regression, because they are not a mpibind statement, they are written by hand in verbatim. The F90 version is a binding, but not the C version.

  • EXTRA_STATE and EXTRA_STATE2 exist

  • C_BUFFER, C_BUFFER2, C_BUFFER3, C_BUFFER4 exist There have no difference other than textual, which is not semantic. Some author wasn't paying attention.

  • Also we may want to discuss unifying how we do argv for MPI_Init, MPI_Init_thread, MPI_Comm_spawn and MPI_Comm_spawn_multiple. MPI_Init does ***argv, MPI_Comm_spawn does *argv[]. One of those * is because for MPI_Init it is an inout, but the [] and * is iffy. This refers back to our discussion that we cannot liberally remove [] and put *, so this would be an errata.

  • MPI_T_cvar_get_num, using wrong type for num_cvar

    • Not a big deal right now because even though it's the wrong KIND, it renders to the right language type.
    • Factors in with the "revamp the KIND system" issue

Already fixed:

  • FIXED MPI_Datarep_extent_function

    • C parameter file_extent does not match name in F08 and F90
  • FIXED MPI_Comm_errhandler_function, C is using weird notation, is it wildcard * or pointer *?

  • FIXED MPI_File_errhandler_function, C is using weird notation, is it wildcard * or pointer *?

  • FIXED MPI_Win_errhandler_function, C is using weird notation, is it wildcard * or pointer *?

  • FIXED MPI_F_SYNC, F90 parameters lowercase, shouldn't be an issue due to case insensitive

  • RESOLVED all mpit functions with \textoutargs{}...

    • MPI_T_enum_get_info
    • MPI_T_enum_get_item
    • MPI_T_cvar_get_info
    • MPI_T_pvar_get_info
    • MPI_T_category_get_info
    • RESOLVED: Not an issue (MPIT does not get a special function)
Clone this wiki locally