Skip to content
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

Ensure all symbols have a corresponding \*main macro #825

Open
devreal opened this issue Jan 16, 2024 · 0 comments
Open

Ensure all symbols have a corresponding \*main macro #825

devreal opened this issue Jan 16, 2024 · 0 comments
Labels

Comments

@devreal
Copy link

devreal commented Jan 16, 2024

Problem

When working on https://github.com/mpi-forum/mpi-standard/pull/954 I noticed that not all symbols used in \mpi*{} macros (e.g., \mpidtype, \error, etc) have a corresponding main definition (e.g., \mpidtypemain, \errormain, etc). Some usages of \mpifunc appear to include argument lists (boo!) and there is at least one typo (MPI_FNIALIZE) somewhere in the text. Some of the symbols are no longer part of the standard (C++ types) or are a combination of several symbols (MPI_(I)RSEND), so they should probably be set using the corresponding skip macros. That way they do not end up in the index.

This cleanup is needed to ensure proper use of hyperref as otherwise some links will point to the first page of the document.

Here is the list of symbols reported by hyperref to be without a corresponding *main macro:

  • MPI::F_COMPLEX32
  • MPI::F_COMPLEX16
  • MPI::F_COMPLEX8
  • MPI::F_COMPLEX4
  • MPI::REAL16
  • MPI::INTEGER16
  • MPI::LONG_LONG
  • MPI::_LONG_LONG
  • MPI::LONG_DOUBLE_COMPLEX
  • MPI::DOUBLE_COMPLEX
  • MPI::COMPLEX
  • MPI::BOOL
  • MPI_(I)RSEND
  • MPI_T_cb_safety
  • MPI_T_source_order
  • MPI_F08_status*
  • MPI_Fint*
  • TYPE(MPI_Status), DIMENSION(*)
  • MPI_Status*
  • TYPE(MPI_Win)
  • MPI_Win
  • TYPE(MPI_Session)
  • MPI_Session
  • TYPE(MPI_File)
  • MPI_File
  • TYPE(MPI_Request)
  • TYPE(MPI_Group)
  • TYPE(MPI_Op)
  • MPI_Op
  • TYPE(MPI_Info)
  • TYPE(MPI_Datatype)
  • TYPE(MPI_Errhandler)
  • MPI_Errhandler
  • MPI_INTEGER_KIND
  • MPI_COUNT_KIND
  • TYPE(MPI_Message)
  • MPI_Message
  • MPI_WIN_GET_ATTR(win, MPI_WIN_BASE, val,
  • MPI_COMM_GET_ATTR(MPI_COMM_WORLD, MPI_TAG_UB,0
  • MPI_F08_STATUSES_IGNORE
  • MPI_F08_STATUS_IGNORE
  • MPI_F_STATUSES_IGNORE
  • MPI_F_STATUS_IGNORE
  • MPI_F_SYNC_REG(buff)
  • MPI_F_SYNC_REG(bbbb)
  • MPI_F_SYNC_REG(buf)
  • MPI_Datatype
  • TYPE(MPI_Comm)
  • PMPI_ISEND
  • PMPI_WTIME
  • PMPI_WTICK
  • MPI_T_ENUM_NULL
  • PMPI_
  • MPI_OFFSET_KIND
  • MPI_FILE_NULL
  • MPI_TEST(request, flag, status)
  • MPI_WAIT(request, status)
  • MPI_CANCEL(request)
  • MPI_GREQUEST_COMPLETE(request)
  • MPI_REQUEST_FREE(request)
  • MPI_MODE_NOSUCCEED
  • MPI_MODE_NOPUT
  • MPI_MODE_NOSTORE
  • MPI_MODE_NOCHECK
  • MPI_WIN_START($outgroup_i$, 04
  • MPI_WIN_POST($ingroup_i$,
  • MPI_MODE_NOPRECEDE
  • MPI_REPLACE
  • MPI_Aint *
  • MPI_WIN_SHARED_QUERY_CPTR
  • MPI_WIN_ALLOCATE_SHARED_CPTR
  • MPI_WIN_ALLOCATE_CPTR
  • MPI_NO_OP
  • MPI_UNIVERSE_SIZE
  • MPI_ERRHANDLER_C2F
  • MPI_ERRHANDLER_F2C
  • MPI_INFO_C2F
  • MPI_INFO_F2C
  • MPI_Comm
  • MPI_Group
  • MPI_INIT_THREAD()
  • MPI_THREAD_MULTIPLE
  • MPI_THREAD_SERIALIZED
  • MPI_THREAD_FUNNELED
  • MPI_THREAD_SINGLE
  • mpiexec
  • MPI_Info
  • MPI_LASTUSEDCODE
  • MPI_ERR_WIN
  • MPI_ERR_UNSUPPORTED_OPERATION
  • MPI_ERR_UNSUPPORTED_DATAREP
  • MPI_ERR_TRUNCATE
  • MPI_ERR_TOPOLOGY
  • MPI_ERR_TAG
  • MPI_ERR_SIZE
  • MPI_ERR_SESSION
  • MPI_ERR_ROOT
  • MPI_ERR_RMA_SYNC
  • MPI_ERR_RMA_SHARED
  • MPI_ERR_RMA_RANGE
  • MPI_ERR_RMA_FLAVOR
  • MPI_ERR_RMA_CONFLICT
  • MPI_ERR_RMA_ATTACH
  • MPI_ERR_REQUEST
  • MPI_ERR_READ_ONLY
  • MPI_ERR_RANK
  • MPI_ERR_QUOTA
  • MPI_ERR_OP
  • MPI_ERR_NOT_SAME
  • MPI_ERR_NO_SPACE
  • MPI_ERR_LOCKTYPE
  • MPI_ERR_IO
  • MPI_ERR_INFO
  • MPI_ERR_GROUP
  • MPI_ERR_FILE_EXISTS
  • MPI_ERR_FILE
  • MPI_ERR_ERRHANDLER
  • MPI_ERR_DISP
  • MPI_ERR_DIMS
  • MPI_ERR_COUNT
  • MPI_ERR_COMM
  • MPI_ERR_BUFFER
  • MPI_ERR_BAD_FILE
  • MPI_ERR_ASSERT
  • MPI_ERR_ARG
  • MPI_ERR_OTHER
  • MPI_ERR_UNKNOWN
  • MPI_ERR_INTERN
  • MPI_ALLOC_MEM_CPTR
  • MPI_COMM_SPLIT(comm, color, key, comm_gra
  • MPI_GRAPH_MAP(comm, nnodes, index, edges,
  • MPI_GRAPH_CREATE(comm, nnodes, index, edg
  • MPI_COMM_SPLIT(comm, color, key, comm_new
  • MPI_CART_SUB(comm, remain_dims, comm_new)
  • MPI_COMM_SPLIT(comm, color, key, comm_car
  • MPI_CART_MAP(comm, ndims, dims, periods,
  • MPI_CART_CREATE(comm, ndims, dims, period
  • MPI_DIMS_CREATE(7, 3, dims)
  • MPI_DIMS_CREATE(6, 3, dims)
  • MPI_DIMS_CREATE(7, 2, dims)
  • MPI_DIMS_CREATE(6, 2, dims)
  • MPI_MAX_OBJECT_NAME
  • MPI_ADDRESS_KIND
  • MPI_INFO_NULL
  • MPI_COMM_SPLIT(comm, color, key, newcomm
  • MPI_COMM_CREATE(comm, group, newcomm)
  • MPI_OP_NULL
  • MPI_INTEGER16
  • MPI_ALLGATHER(...)
  • MPI_RECV(recvbuf, recvcount$cdot $n, re
  • MPI_PACK(inbuf, incount, datatype, outbuf
  • MPI_PACK_SIZE(incount, datatype, comm, si
  • MPI_RECV(buf, count, datatype, dest, t
  • MPI_RECV(buf, count, datatype, source,04
  • MPI_SEND(buf, count, datatype, dest, t
  • MPI_SEND(buf, count, datatype, ...)
  • MPI_TYPE_CONTIGUOUS(2, type1, type2)
  • MPI_TYPE_CREATE_RESIZED(MPI_INT, -3, 9, t
  • MPI_TYPE_CREATE_STRUCT(count, B, D, T,04
  • MPI_TYPE_CREATE_HINDEXED(count, B, D, old
  • MPI_TYPE_INDEXED(count, B, D, oldtype,04
  • MPI_TYPE_VECTOR(count, blocklength, stride,
  • MPI_TYPE_INDEXED(2, B, D, oldtype, new
  • MPI_TYPE_VECTOR(1, count, n, oldtype,
  • MPI_TYPE_VECTOR(count, 1, 1, oldtype,
  • MPI_TYPE_CONTIGUOUS(count, oldtype, newtype
  • MPI_TYPE_VECTOR(3, 1, -2, oldtype, new
  • MPI_TYPE_VECTOR(2, 3, 4, oldtype, newt
  • MPI_RECV(buf, 1, datatype,$ .k
  • MPI_SEND(buf, 1, datatype,$ .k
  • MPI_FNIALIZE
  • MPI_Request
  • MPI_PACK_SIZE(count, datatype, comm, size
  • MPI_Status
  • TYPE(MPI_Status)
  • PMPI_AINT_DIFF
  • PMPI_AINT_ADD
  • MPI_Status_set_elements_c
  • MPI_Get_elements_c
  • MPI_Type_get_true_extent_c
  • MPI_Type_get_extent_c
  • MPI_Type_size_c
  • MPI_T_ERR_INVALID_ITEM
  • COMM_DELETE_ATTR_FUNCTION
  • DELETE_FUNCTION
  • COPY_FUNCTION
  • MPI_SUCCESS
  • COMM_COPY_ATTR_FUNCTION
  • MPI_ARGVS_NULL
  • MPI_ARGV_NULL
  • MPI_ERRCODES_IGNORE
  • MPI_COMM_WORLD
  • MPI_BOTTOM
  • MPI_UNDEFINED

Proposal

Chapter committees should check their chapter for missing *main macros for the symbols above and either define them or replace the used macros with the corresponding skip macros.

Changes to the Text

No changes to the semantics.

Impact on Implementations

None.

Impact on Users

Cleaner index, happier users.

References and Pull Requests

An attempt to extend the relevant macros to include hyperrefs: https://github.com/mpi-forum/mpi-standard/pull/954

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: To Do
Development

No branches or pull requests

1 participant