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

Adding Fortran bind(C) support for basic OpenSHMEM routines #257

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Update FTN bind(c) overview section
naveen-rn committed Feb 27, 2019
commit f24f26c8733627e01692a9e6d733779da65b2c8f
17 changes: 9 additions & 8 deletions language/ftn08/overview.tex
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
\openshmem \Fortran[bind(C)] language bindings is based on \Fortran-\Cstd
interoperability feature introduced in \Fortran[2003](ISO/IEC 1539-1:2004(E))
language standard. Since \Fortran[2003] there is a standarized way to generate
procedure, derived-type declarations and global variables which are interoperable
with \Cstd(ISO/IEC 9899:1999). The bind(C) attribute is added in the \Fortran
language to enable this interoperability with \Cstd. The \openshmem
interoperability feature introduced in \Fortran[2018](ISO/IEC 1539-1:2018(E))
language standard. \Fortran[2018] defines a standard way to generate procedure,
derived-type declarations and global variables which are interoperable with
\Cstd(ISO/IEC 9899:2011). The bind(C) attribute available in the \Fortran
language enables the interoperability with \Cstd. The \openshmem
\Fortran[bind(C)] language bindings use this standard way to generate \Fortran
wrappers over the primary \Cstd language bindings provided by \openshmem.

@@ -13,8 +13,8 @@
bind(C) attribute over the \Cstd language bindings specified by \openshmem
specification.
\item All available language constants, library handles, and environment
variables from the \openshmem specification are supported by this language
bindings.
variables from the \openshmem specification are supported by \openshmem
\Fortran[bind(C)] language bindings.
\item The \Fortran[bind(C)] language bindings is defined in a module named
\textit{shmem}. The \textit{shmem} module must contain only the interfaces
and constant names defined in this specification.
@@ -26,5 +26,6 @@
\item \openshmem APIs in this language bindings are available either as a
subroutine or a function. \openshmem \Cstd APIs which returns a value are
wrapped as functions, while those APIs that have some arguments and perform
a specific operation without returning any values are wrapped as subroutines.
a specific operation without returning any values are wrapped as
subroutines.
\end{itemize}
2 changes: 1 addition & 1 deletion language/lang_ext_overview.tex
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
\openshmem provides ISO \Cstd bindings. \Cstd bindings are the primary language
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The first and second sentences sound redundant. I would drop one of the sentences, or change/reword/reorder them if you were trying to impart specific information.

bindings provided by \openshmem specification. Implementations can claim
conformance to the specification by just providing support for the primary \Cstd
bindings. In this document, other language bindings are introduced as extension
bindings. In this document, other language bindings are introduced as extensions
to the \openshmem specification. Implementations can selectively provide support
for language bindings introduced in this document and may claim conformance only
with respect to those languages.