From 97c2f228040ae1c9eb96132d7f0a75f5fb0f1628 Mon Sep 17 00:00:00 2001 From: Naveen Namashivayam Ravichandrasekaran Date: Sat, 24 Nov 2018 18:08:35 -0600 Subject: [PATCH 1/7] Add separate document for lang bind ext --- .gitignore | 8 + Makefile | 14 +- language/coverpage.tex | 122 ++++++++ language/frontmatter.tex | 36 +++ language/lang_ext_overview.log | 489 +++++++++++++++++++++++++++++++++ language/lang_ext_overview.tex | 8 + language_ext.tex | 27 ++ 7 files changed, 702 insertions(+), 2 deletions(-) create mode 100644 language/coverpage.tex create mode 100644 language/frontmatter.tex create mode 100644 language/lang_ext_overview.log create mode 100644 language/lang_ext_overview.tex create mode 100644 language_ext.tex diff --git a/.gitignore b/.gitignore index 721f3a3f6..a4d74c687 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,11 @@ main_spec.log main_spec.out main_spec.pdf main_spec.toc +language_ext.aux +language_ext.idx +language_ext.ilg +language_ext.ind +language_ext.log +language_ext.out +language_ext.pdf +language_ext.toc diff --git a/Makefile b/Makefile index 0a48e04d4..d5fb43500 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,18 @@ TARGET = main_spec +LANG_EXT = language_ext SOURCES = $(shell find . -name '*.tex' -print) FIGURES = $(shell find figures -name '*.pdf' -print) EXAMPLES = $(shell find example_code -name '*.[c,f]*' -print) .PHONY: all -all: ${TARGET}.pdf +all: ${TARGET}.pdf ${LANG_EXT}.pdf + +${TARGET}.pdf: ${SOURCES} ${FIGURES} ${EXAMPLES} + pdflatex $(LATEXOPT) ${TARGET} + makeindex ${TARGET} + pdflatex $(LATEXOPT) ${TARGET} + makeindex ${TARGET} + pdflatex $(LATEXOPT) ${TARGET} ${TARGET}.pdf: ${SOURCES} ${FIGURES} ${EXAMPLES} pdflatex $(LATEXOPT) ${TARGET} @@ -15,5 +23,7 @@ ${TARGET}.pdf: ${SOURCES} ${FIGURES} ${EXAMPLES} .PHONY: clean clean: - rm -f ${TARGET}.{log,aux,ps,dvi,bbl,blg,log,idx,out,toc,pdf,out} chappage.txt + rm -f ${TARGET}.{log,aux,ps,dvi,bbl,blg,log,idx,out,toc,pdf,out} \ + ${LANG_EXT}.{log,aux,ps,dvi,bbl,blg,log,idx,out,toc,pdf,out} \ + chappage.txt diff --git a/language/coverpage.tex b/language/coverpage.tex new file mode 100644 index 000000000..cf0517478 --- /dev/null +++ b/language/coverpage.tex @@ -0,0 +1,122 @@ +\thispagestyle{empty} +\begin{center} +\textbf{\LARGE Language Binding Extensions For}\\ +\par +\end{center} + +\begin{center} +\textbf{\Huge \openshmem} +\par +\end{center} + +\begin{center} +\textbf{\LARGE Application Programming Interface}\\ +\includegraphics[scale=0.65]{figures/OpenSHMEM_Pound}\\ +\url{http://www.openshmem.org/} +\par +\end{center} + +\begin{center} +Version \insertDocVersion +\par +\end{center} + +\vspace{0.5in} +\begin{center} +\today +\end{center} + +\vspace{0.5in} + +\vfill{} + +\section*{Development by} +\begin{itemize} +\item For a current list of contributors and collaborators please see\\ + \url{http://www.openshmem.org/site/Contributors/} +\item For a current list of OpenSHMEM implementations and tools, please see\\ + \url{http://openshmem.org/site/Links#impl/} + +\end{itemize} + +\pagebreak{} + +\section*{Sponsored by} +\begin{itemize} +\item \ac{DoD}\\ + \url{http://www.defense.gov/ } +\item \ac{ORNL}\\ + \url{http://www.ornl.gov/} +\item \ac{LANL}\\ + \url{http://www.lanl.gov/} +\end{itemize} + +\section*{Current Authors and Collaborators} +\begin{itemize} +\item Matthew Baker, \ac{ORNL} +\item Swen Boehm, \ac{ORNL} +\item Aurelien Bouteiller, \ac{UTK} +\item Barbara Chapman, \ac{SBU} +\item Robert Cernohous, Cray Inc. +\item James Culhane, \ac{LANL} +\item Tony Curtis, \ac{SBU} +\item James Dinan, Intel +\item Mike Dubman, Mellanox +\item Karl Feind, \ac{HPE} +\item Manjunath Gorentla Venkata, \ac{ORNL} +\item Max Grossman, Rice University +\item Khaled Hamidouche, \ac{AMD} +\item Jeff Hammond, Intel +\item Yossi Itigin, Mellanox +\item Bryant Lam, \ac{DoD} +\item David Knaak, Cray Inc. +\item Jeff Kuehn, \ac{LANL} +\item Jens Manser, \ac{DoD} +\item Tiffany M. Mintz, \ac{ORNL} +\item David Ozog, Intel +\item Nicholas Park, \ac{DoD} +\item Steve Poole, \ac{OSSS} +\item Wendy Poole, \ac{OSSS} +\item Swaroop Pophale, \ac{ORNL} +\item Sreeram Potluri, NVIDIA +\item Howard Pritchard, \ac{LANL} +\item Naveen Ravichandrasekaran, Cray Inc. +\item Michael Raymond, \ac{HPE} +\item James Ross, \ac{ARL} +\item Pavel Shamis, ARM Inc. +\item Sameer Shende, \ac{UO} +\item Lauren Smith, \ac{DoD} + +\end{itemize} + +\section*{Alumni Authors and Collaborators} +\begin{itemize} +\item Amrita Banerjee, \ac{UH} +\item Monika ten Bruggencate, Cray Inc. +\item Eduardo D'Azevedo, \ac{ORNL} +\item Oscar Hernandez, \ac{ORNL} +\item Gregory Koenig, \ac{ORNL} +\item Graham Lopez, \ac{ORNL} +\item Ricardo Mauricio, \ac{UH} +\item Ram Nanjegowda, \ac{UH} +\item Aaron Welch, \ac{ORNL} + +\end{itemize} + +\date{\today} + +\section*{Acknowledgments} +The \openshmem specification belongs to Open Source Software Solutions, Inc. +(OSSS), a non-profit organization, under an agreement with HPE. For a current list +of Contributors and Collaborators, please see + \url{http://www.openshmem.org/site/Contributors/}. +We gratefully acknowledge support from +Oak Ridge National Laboratory's +Extreme Scale Systems Center and the continuing support of the Department of Defense.\\ +\\ +We would also like to acknowledge the contribution of the members of the +\openshmem mailing list for their ideas, discussions, suggestions, and +constructive criticism which has helped us improve this document.\\ +\\ +\openshmem[1.4] is dedicated to the memory of David Charles Knaak. David was a highly involved +colleague and contributor to the entire OpenSHMEM project. He will be missed. diff --git a/language/frontmatter.tex b/language/frontmatter.tex new file mode 100644 index 000000000..a75ab7bed --- /dev/null +++ b/language/frontmatter.tex @@ -0,0 +1,36 @@ +\hypersetup{pageanchor=true,citecolor=blue} + +% Set header/footer for opening content +\pagestyle{fancy} +\fancyhead{} +\fancyhead[LE,LO]{\insertDocVersion} +\fancyhead[CO,CE]{--- DRAFT ---} +\SetWatermarkText{DRAFT} +\SetWatermarkScale{1} +\fancyfoot[CE,CO]{\thepage} %affects page numbering for the first pages, + %except the first ToC page + +\pagenumbering{roman} %sets coverpage and toc page numbers to roman numerals + +\input{language/coverpage} + +\setcounter{tocdepth}{4} +\setcounter{secnumdepth}{4} +\tableofcontents + +\mainmatter % included for use of documenttype 'book' + +% Set header/footer for main content +\pagestyle{fancy} %replacing {headings} with {fancy} for customization +\withlinenumbers %adds line numbers to edges of normal pages +\fancyhf{} +\fancyhead[RE, LO]{\rightmark} +\fancyhead[RO, LE]{\thepage} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\thesection}{\arabic{section}} + +{ %using setlength to force standardized spacing, if needed +% this command is ended in backmatter.tex +%\setlength{\baselineskip}{3pt plus 3pt minus 3pt} + +\setlength{\parskip}{3pt} diff --git a/language/lang_ext_overview.log b/language/lang_ext_overview.log new file mode 100644 index 000000000..a798b47f5 --- /dev/null +++ b/language/lang_ext_overview.log @@ -0,0 +1,489 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.16 (MiKTeX 2.9) (preloaded format=pdflatex 2016.4.29) 24 NOV 2018 18:02 +entering extended mode +**C:/Users/nravi/Documents/documents/wrk/src/std/nravi/language/lang_ext_overvi +ew.tex + +(C:/Users/nravi/Documents/documents/wrk/src/std/nravi/language/lang_ext_overvie +w.tex +LaTeX2e <2015/10/01> patch level 2 +Babel <3.9n> and hyphenation patterns for 69 languages loaded. +! Undefined control sequence. +l.1 \openshmem + provides ISO \Cstd bindings. \Cstd bindings are the primary l... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.1 \openshmem p + rovides ISO \Cstd bindings. \Cstd bindings are the primary l... + +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no O in font nullfont! +! Undefined control sequence. +l.1 \openshmem provides ISO \Cstd + bindings. \Cstd bindings are the primary l... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +! Undefined control sequence. +l.1 \openshmem provides ISO \Cstd bindings. \Cstd + bindings are the primary l... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no y in font nullfont! +! Undefined control sequence. +l.2 bindings provided by \openshmem + specification. Implementations can claim +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +! Undefined control sequence. +l.3 ...ust providing support for the primary \Cstd + +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +! Undefined control sequence. +l.6 \openshmem + specification. Implementations can selectively provide suppor... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +) +! Emergency stop. +<*> ...rc/std/nravi/language/lang_ext_overview.tex + +*** (job aborted, no legal \end found) + + +Here is how much of TeX's memory you used: + 7 strings out of 493634 + 385 string characters out of 3135239 + 52604 words of memory out of 3000000 + 3491 multiletter control sequences out of 15000+200000 + 3640 words of font info for 14 fonts, out of 3000000 for 9000 + 1025 hyphenation exceptions out of 8191 + 5i,0n,4p,167b,14s stack positions out of 5000i,500n,10000p,200000b,50000s +! ==> Fatal error occurred, no output PDF file produced! diff --git a/language/lang_ext_overview.tex b/language/lang_ext_overview.tex new file mode 100644 index 000000000..c6fe59ac0 --- /dev/null +++ b/language/lang_ext_overview.tex @@ -0,0 +1,8 @@ +\openshmem provides ISO \Cstd bindings. \Cstd bindings are the primary language +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 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. diff --git a/language_ext.tex b/language_ext.tex new file mode 100644 index 000000000..ca5dc817f --- /dev/null +++ b/language_ext.tex @@ -0,0 +1,27 @@ +\documentclass[10pt]{book} + +\input{utils/packages} + +\input{utils/defs} + +\begin{document} + +\input{language/frontmatter} + + +\section{The OpenSHMEM Effort}\label{subsec:openshmem_effort} +\input{content/the_openshmem_effort} + +\section{Language Binding Extensions Overview}\label{subsec:lang_ext_overview} +\input{language/lang_ext_overview} + +\clearpage + +\chapter{Fortran 2008} + +\clearpage +\phantomsection +\addcontentsline{toc}{chapter}{Index} +\printindex + +\end{document} From 77f2f52fd39a34f123b4996971c830380bb96454 Mon Sep 17 00:00:00 2001 From: Naveen Namashivayam Ravichandrasekaran Date: Sat, 24 Nov 2018 19:58:41 -0600 Subject: [PATCH 2/7] Add FTN08 lang extensions --- language/ftn08/api.tex | 0 language/ftn08/compiling_pgms.tex | 0 language/ftn08/overview.tex | 33 ++ language/ftn08/writing_pgms.tex | 0 language/lang_ext_overview.log | 489 ------------------------------ language/lang_ext_overview.tex | 7 +- language_ext.tex | 14 +- 7 files changed, 49 insertions(+), 494 deletions(-) create mode 100644 language/ftn08/api.tex create mode 100644 language/ftn08/compiling_pgms.tex create mode 100644 language/ftn08/overview.tex create mode 100644 language/ftn08/writing_pgms.tex delete mode 100644 language/lang_ext_overview.log diff --git a/language/ftn08/api.tex b/language/ftn08/api.tex new file mode 100644 index 000000000..e69de29bb diff --git a/language/ftn08/compiling_pgms.tex b/language/ftn08/compiling_pgms.tex new file mode 100644 index 000000000..e69de29bb diff --git a/language/ftn08/overview.tex b/language/ftn08/overview.tex new file mode 100644 index 000000000..bd3db5b17 --- /dev/null +++ b/language/ftn08/overview.tex @@ -0,0 +1,33 @@ +\openshmem \Fortran[bind(C)] language bindings is based on \Fortran-\Cstd +interoperability feature introduced in +\Fortran[2003]\footnote{ISO/IEC 1539-1:2004(E)} language standard. Since +\Fortran[2003] there is a standarized way to generate procedure and derived-type +declarations and global variables which are interoperable with +\Cstd\footnote{ISO/IEC 9899:1999}. A bind(C) attribute is added in the \Fortran +language to enable this 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. + +\begin{itemize} + \item All available language constants, library handles, and environment + variables from the \openshmem specification are supported by this language + bindings. + \item All the \openshmem APIs specified by this language bindings are + implemented as a wrapper interface using \Fortran bind(C) attribute over the + \Cstd language bindings specified by \openshmem specification. + \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. + \item All \openshmem extension APIs that are not part of this specification + must be defined in a separate \textit{shmemx} module. The \textit{shmemx} + module must exist, even if no extensions are provided. Any extensions shall + use the \textit{shmemx\_} prefix for all routine, variable, and constant + names. + \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 in some arguments and perform a + specific operation without returning any values are wrapped as subroutines. + \item As the \Fortran[bind(C)] language bindings are implemented over the + \openshmem \Cstd language bindings, there are no semantic or functional + differences in the \Fortran[bind(C)] language binding interfaces. +\end{itemize} diff --git a/language/ftn08/writing_pgms.tex b/language/ftn08/writing_pgms.tex new file mode 100644 index 000000000..e69de29bb diff --git a/language/lang_ext_overview.log b/language/lang_ext_overview.log deleted file mode 100644 index a798b47f5..000000000 --- a/language/lang_ext_overview.log +++ /dev/null @@ -1,489 +0,0 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.16 (MiKTeX 2.9) (preloaded format=pdflatex 2016.4.29) 24 NOV 2018 18:02 -entering extended mode -**C:/Users/nravi/Documents/documents/wrk/src/std/nravi/language/lang_ext_overvi -ew.tex - -(C:/Users/nravi/Documents/documents/wrk/src/std/nravi/language/lang_ext_overvie -w.tex -LaTeX2e <2015/10/01> patch level 2 -Babel <3.9n> and hyphenation patterns for 69 languages loaded. -! Undefined control sequence. -l.1 \openshmem - provides ISO \Cstd bindings. \Cstd bindings are the primary l... -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - - -! LaTeX Error: Missing \begin{document}. - -See the LaTeX manual or LaTeX Companion for explanation. -Type H for immediate help. - ... - -l.1 \openshmem p - rovides ISO \Cstd bindings. \Cstd bindings are the primary l... - -You're in trouble here. Try typing to proceed. -If that doesn't work, type X to quit. - -Missing character: There is no p in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no v in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no I in font nullfont! -Missing character: There is no S in font nullfont! -Missing character: There is no O in font nullfont! -! Undefined control sequence. -l.1 \openshmem provides ISO \Cstd - bindings. \Cstd bindings are the primary l... -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -Missing character: There is no b in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no . in font nullfont! -! Undefined control sequence. -l.1 \openshmem provides ISO \Cstd bindings. \Cstd - bindings are the primary l... -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -Missing character: There is no b in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no y in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no b in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no v in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no b in font nullfont! -Missing character: There is no y in font nullfont! -! Undefined control sequence. -l.2 bindings provided by \openshmem - specification. Implementations can claim -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -Missing character: There is no s in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no f in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no . in font nullfont! -Missing character: There is no I in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no f in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no f in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no b in font nullfont! -Missing character: There is no y in font nullfont! -Missing character: There is no j in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no v in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no f in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no y in font nullfont! -! Undefined control sequence. -l.3 ...ust providing support for the primary \Cstd - -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -Missing character: There is no b in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no . in font nullfont! -Missing character: There is no I in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no , in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no b in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no x in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no e in font nullfont! -! Undefined control sequence. -l.6 \openshmem - specification. Implementations can selectively provide suppor... -The control sequence at the end of the top line -of your error message was never \def'ed. If you have -misspelled it (e.g., `\hobx'), type `I' and the correct -spelling (e.g., `I\hbox'). Otherwise just continue, -and I'll forget about whatever was undefined. - -Missing character: There is no s in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no f in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no . in font nullfont! -Missing character: There is no I in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no v in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no y in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no v in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no f in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no b in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no y in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no f in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no y in font nullfont! -Missing character: There is no w in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no . in font nullfont! -) -! Emergency stop. -<*> ...rc/std/nravi/language/lang_ext_overview.tex - -*** (job aborted, no legal \end found) - - -Here is how much of TeX's memory you used: - 7 strings out of 493634 - 385 string characters out of 3135239 - 52604 words of memory out of 3000000 - 3491 multiletter control sequences out of 15000+200000 - 3640 words of font info for 14 fonts, out of 3000000 for 9000 - 1025 hyphenation exceptions out of 8191 - 5i,0n,4p,167b,14s stack positions out of 5000i,500n,10000p,200000b,50000s -! ==> Fatal error occurred, no output PDF file produced! diff --git a/language/lang_ext_overview.tex b/language/lang_ext_overview.tex index c6fe59ac0..aea5902f6 100644 --- a/language/lang_ext_overview.tex +++ b/language/lang_ext_overview.tex @@ -1,8 +1,7 @@ \openshmem provides ISO \Cstd bindings. \Cstd bindings are the primary language 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 extensions to the -\openshmem specification. Implementations can selectively provide support for -language bindings introduced in this document and may claim conformance only +bindings. In this document, other language bindings are introduced as extension +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. diff --git a/language_ext.tex b/language_ext.tex index ca5dc817f..e9d902f98 100644 --- a/language_ext.tex +++ b/language_ext.tex @@ -17,7 +17,19 @@ \section{Language Binding Extensions Overview}\label{subsec:lang_ext_overview} \clearpage -\chapter{Fortran 2008} +\chapter{Fortran Bind(C) Interface} + +\section{Overview}\label{subsec:ftn08_overview} +\input{language/ftn08/overview.tex} + +\section{OpenSHMEM Library API}\label{subsec:ftn08_api} +\input{language/ftn08/api.tex} + +\section{Writing OpenSHMEM Programs}\label{subsec:ftn08_writing} +\input{language/ftn08/writing_pgms.tex} + +\section{Compiling and Running OpenSHMEM Programs}\label{subsec:ftn08_compiling} +\input{language/ftn08/compiling_pgms.tex} \clearpage \phantomsection From 5097e76e125eb54de96c9d4fe00eba27215eb9b9 Mon Sep 17 00:00:00 2001 From: Naveen Namashivayam Ravichandrasekaran Date: Sat, 24 Nov 2018 20:14:44 -0600 Subject: [PATCH 3/7] Framework for FTN08 APIs --- language/ftn08/api.tex | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/language/ftn08/api.tex b/language/ftn08/api.tex index e69de29bb..6631aaea1 100644 --- a/language/ftn08/api.tex +++ b/language/ftn08/api.tex @@ -0,0 +1,33 @@ +\subsubsection{Library Setup, Exit, and Query Routines} +\label{subsubsec:ftn_setup} + +\subsubsection{Thread Support} +\label{subsubsec:ftn_thread} + +\subsubsection{Memory Management Routines} +\label{subsubsec:ftn_mem_manage} + +\subsubsection{Communication Management Routines} +\label{subsubsec:ftn_comm_manage} + +\subsubsection{Remote Memory Access Routines} +\label{subsubsec:ftn_rma} + +\subsubsection{Non-blocking Remote Memory Access Routines} +\label{subsubsec:ftn_rma_nbi} + +\subsubsection{Atomic Memory Operations} +\label{subsubsec:ftn_amo} + +\subsubsection{Collective Routines} +\label{subsubsec:ftn_coll} + +\subsubsection{Point-To-Point Synchronization Routines} +\label{subsubsec:ftn_ptp_sync} + +\subsubsection{Memory Ordering Routines} +\label{subsubsec:ftn_mem_order} + +\subsubsection{Distributed Locking Routines} +\label{subsubsec:ftn_locks} + From 14c4cd01c8a88f1bbee768502a5d5768391c7685 Mon Sep 17 00:00:00 2001 From: Naveen Namashivayam Ravichandrasekaran Date: Sat, 24 Nov 2018 20:57:48 -0600 Subject: [PATCH 4/7] Add list of ftn interfaces against c --- language/ftn08/api.tex | 170 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) diff --git a/language/ftn08/api.tex b/language/ftn08/api.tex index 6631aaea1..6d4e47ce8 100644 --- a/language/ftn08/api.tex +++ b/language/ftn08/api.tex @@ -1,21 +1,191 @@ \subsubsection{Library Setup, Exit, and Query Routines} \label{subsubsec:ftn_setup} +\begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} +\hline +\textbf{\Fortran[bind(C)] Language Binding Interface} & +\textbf{\Cstd Language Binding Interface} +\tabularnewline \hline +\endhead +%% +SUBROUTINE shmem\_init() & +void shmem\_init(void); +\tabularnewline \hline +%% +FUNCTION shmem\_my\_pe() + +\textit{Return}: + +INTEGER :: pe\_index +& +int shmem\_my\_pe(void); +\tabularnewline \hline +%% +FUNCTION shmem\_n\_pes() + +\textit{Return}: + +INTEGER :: num\_pes +& +int shmem\_n\_pes(void); +\tabularnewline \hline +%% +SUBROUTINE shmem\_finalize() & +void shmem\_finalize(void); +\tabularnewline \hline +%% +SUBROUTINE shmem\_global\_exit(status) + +INTEGER,INTENT(IN) :: status +& +void shmem\_global\_exit(int status); +\tabularnewline \hline +%% +\end{longtable} + \subsubsection{Thread Support} \label{subsubsec:ftn_thread} +\begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} +\hline +\textbf{\Fortran[bind(C)] Language Binding Interface} & +\textbf{\Cstd Language Binding Interface} +\tabularnewline \hline +\endhead +%% +FUNCTION shmem\_init\_thread(requested, actual) + +INTEGER,INTENT(IN) :: requested + +TYPE(INTEGER),INTENT(OUT) :: actual + +\textit{Return}: + +INTEGER :: err +& +int shmem\_init\_thread(int requested, int *actual); +\tabularnewline \hline +%% +SUBROUTINE shmem\_query\_thread(provided) + +TYPE(INTEGER),INTENT(OUT) :: provided +& +void shmem\_query\_thread(int *provided); +\tabularnewline \hline +%% +\end{longtable} + + \subsubsection{Memory Management Routines} \label{subsubsec:ftn_mem_manage} \subsubsection{Communication Management Routines} \label{subsubsec:ftn_comm_manage} +\begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} +\hline +\textbf{\Fortran[bind(C)] Language Binding Interface} & +\textbf{\Cstd Language Binding Interface} +\tabularnewline \hline +\endhead +%% +FUNCTION shmem\_ctx\_create(options, ctx) + +INTEGER, INTENT(IN) :: options + +TYPE(shmem\_ctx\_t),INTENT(OUT) :: ctx + +\textit{Return}: + +INTEGER :: err +& +int shmem\_ctx\_create(long options, shmem\_ctx\_t *ctx); +\tabularnewline \hline +%% +SUBROUTINE shmem\_ctx\_destroy(ctx) + +TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx +& +void shmem\_ctx\_destroy(shmem\_ctx\_t ctx); +\tabularnewline \hline +%% +\end{longtable} + + \subsubsection{Remote Memory Access Routines} \label{subsubsec:ftn_rma} +\begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} +\hline +\textbf{\Fortran[bind(C)] Language Binding Interface} & +\textbf{\Cstd Language Binding Interface} +\tabularnewline \hline +\endhead +%% +SUBROUTINE shmem\_putmem(dest, src, nelems, pe, ctx) + +TYPE(*),DIMENSION(*),INTENT(IN) :: dest, src + +INTEGER, INTENT(IN) :: nelems, pe + +TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx + +& +void shmem\_ctx\_putmem(shmem\_ctx\_t *ctx, void *dest, const void *src, size\_t nelems, int pe); +\tabularnewline \hline +%% +SUBROUTINE shmem\_getmem(dest, src, nelems, pe, ctx) + +TYPE(*),DIMENSION(*),INTENT(IN) :: dest, src + +INTEGER, INTENT(IN) :: nelems, pe + +TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx + +& +void shmem\_ctx\_getmem(shmem\_ctx\_t *ctx, void *dest, const void *src, size\_t nelems, int pe); +\tabularnewline \hline +%% +\end{longtable} + + \subsubsection{Non-blocking Remote Memory Access Routines} \label{subsubsec:ftn_rma_nbi} +\begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} +\hline +\textbf{\Fortran[bind(C)] Language Binding Interface} & +\textbf{\Cstd Language Binding Interface} +\tabularnewline \hline +\endhead +%% +SUBROUTINE shmem\_putmem\_nbi(dest, src, nelems, pe, ctx) + +TYPE(*),DIMENSION(*),INTENT(IN) :: dest, src + +INTEGER, INTENT(IN) :: nelems, pe + +TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx + +& +void shmem\_ctx\_putmem\_nbi(shmem\_ctx\_t *ctx, void *dest, const void *src, size\_t nelems, int pe); +\tabularnewline \hline +%% +SUBROUTINE shmem\_getmem\_nbi(dest, src, nelems, pe, ctx) + +TYPE(*),DIMENSION(*),INTENT(IN) :: dest, src + +INTEGER, INTENT(IN) :: nelems, pe + +TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx + +& +void shmem\_ctx\_getmem\_nbi(shmem\_ctx\_t *ctx, void *dest, const void *src, size\_t nelems, int pe); +\tabularnewline \hline +%% +\end{longtable} + + \subsubsection{Atomic Memory Operations} \label{subsubsec:ftn_amo} From 13ae4090caddc28114b7ed1549fcad33c10dfb08 Mon Sep 17 00:00:00 2001 From: Naveen Namashivayam Ravichandrasekaran Date: Fri, 7 Dec 2018 18:05:01 -0600 Subject: [PATCH 5/7] Add mem-order and lock FTN bind(C) interface routines --- language/ftn08/api.tex | 144 +++++++++++++++++++++++++++++++++++- language/ftn08/overview.tex | 23 +++--- 2 files changed, 152 insertions(+), 15 deletions(-) diff --git a/language/ftn08/api.tex b/language/ftn08/api.tex index 6d4e47ce8..ffd899e42 100644 --- a/language/ftn08/api.tex +++ b/language/ftn08/api.tex @@ -1,6 +1,12 @@ \subsubsection{Library Setup, Exit, and Query Routines} \label{subsubsec:ftn_setup} +As the \Fortran[bind(C)] language bindings are implemented over the \openshmem +\Cstd language bindings, there are no semantic or functional differences in the +\Fortran[bind(C)] language binding interfaces. Along with the argument and +standard type definition for the \Fortran[bind(C)] language bindings, the +corresponding \Cstd language bindings are provided for semantic reference. + \begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} \hline \textbf{\Fortran[bind(C)] Language Binding Interface} & @@ -8,12 +14,22 @@ \subsubsection{Library Setup, Exit, and Query Routines} \tabularnewline \hline \endhead %% -SUBROUTINE shmem\_init() & +SUBROUTINE shmem\_init() + +\textit{Arguments}: +None. + +\textit{Return}: +None. + & void shmem\_init(void); \tabularnewline \hline %% FUNCTION shmem\_my\_pe() +\textit{Arguments}: +None. + \textit{Return}: INTEGER :: pe\_index @@ -23,6 +39,9 @@ \subsubsection{Library Setup, Exit, and Query Routines} %% FUNCTION shmem\_n\_pes() +\textit{Arguments}: +None. + \textit{Return}: INTEGER :: num\_pes @@ -30,13 +49,25 @@ \subsubsection{Library Setup, Exit, and Query Routines} int shmem\_n\_pes(void); \tabularnewline \hline %% -SUBROUTINE shmem\_finalize() & +SUBROUTINE shmem\_finalize() + +\textit{Arguments}: +None. + +\textit{Return}: +None. +& void shmem\_finalize(void); \tabularnewline \hline %% SUBROUTINE shmem\_global\_exit(status) +\textit{Arguments}: + INTEGER,INTENT(IN) :: status + +\textit{Return}: +None. & void shmem\_global\_exit(int status); \tabularnewline \hline @@ -55,6 +86,8 @@ \subsubsection{Thread Support} %% FUNCTION shmem\_init\_thread(requested, actual) +\textit{Arguments}: + INTEGER,INTENT(IN) :: requested TYPE(INTEGER),INTENT(OUT) :: actual @@ -68,7 +101,12 @@ \subsubsection{Thread Support} %% SUBROUTINE shmem\_query\_thread(provided) +\textit{Arguments}: + TYPE(INTEGER),INTENT(OUT) :: provided + +\textit{Return}: +None. & void shmem\_query\_thread(int *provided); \tabularnewline \hline @@ -91,6 +129,8 @@ \subsubsection{Communication Management Routines} %% FUNCTION shmem\_ctx\_create(options, ctx) +\textit{Arguments}: + INTEGER, INTENT(IN) :: options TYPE(shmem\_ctx\_t),INTENT(OUT) :: ctx @@ -104,7 +144,12 @@ \subsubsection{Communication Management Routines} %% SUBROUTINE shmem\_ctx\_destroy(ctx) +\textit{Arguments}: + TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx + +\textit{Return}: +None. & void shmem\_ctx\_destroy(shmem\_ctx\_t ctx); \tabularnewline \hline @@ -124,24 +169,32 @@ \subsubsection{Remote Memory Access Routines} %% SUBROUTINE shmem\_putmem(dest, src, nelems, pe, ctx) +\textit{Arguments}: + TYPE(*),DIMENSION(*),INTENT(IN) :: dest, src INTEGER, INTENT(IN) :: nelems, pe TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx +\textit{Return}: +None. & void shmem\_ctx\_putmem(shmem\_ctx\_t *ctx, void *dest, const void *src, size\_t nelems, int pe); \tabularnewline \hline %% SUBROUTINE shmem\_getmem(dest, src, nelems, pe, ctx) +\textit{Arguments}: + TYPE(*),DIMENSION(*),INTENT(IN) :: dest, src INTEGER, INTENT(IN) :: nelems, pe TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx +\textit{Return}: +None. & void shmem\_ctx\_getmem(shmem\_ctx\_t *ctx, void *dest, const void *src, size\_t nelems, int pe); \tabularnewline \hline @@ -161,24 +214,32 @@ \subsubsection{Non-blocking Remote Memory Access Routines} %% SUBROUTINE shmem\_putmem\_nbi(dest, src, nelems, pe, ctx) +\textit{Arguments}: + TYPE(*),DIMENSION(*),INTENT(IN) :: dest, src INTEGER, INTENT(IN) :: nelems, pe TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx +\textit{Return}: +None. & void shmem\_ctx\_putmem\_nbi(shmem\_ctx\_t *ctx, void *dest, const void *src, size\_t nelems, int pe); \tabularnewline \hline %% SUBROUTINE shmem\_getmem\_nbi(dest, src, nelems, pe, ctx) +\textit{Arguments}: + TYPE(*),DIMENSION(*),INTENT(IN) :: dest, src INTEGER, INTENT(IN) :: nelems, pe TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx +\textit{Return}: +None. & void shmem\_ctx\_getmem\_nbi(shmem\_ctx\_t *ctx, void *dest, const void *src, size\_t nelems, int pe); \tabularnewline \hline @@ -198,6 +259,85 @@ \subsubsection{Point-To-Point Synchronization Routines} \subsubsection{Memory Ordering Routines} \label{subsubsec:ftn_mem_order} +\begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} +\hline +\textbf{\Fortran[bind(C)] Language Binding Interface} & +\textbf{\Cstd Language Binding Interface} +\tabularnewline \hline +\endhead +%% +SUBROUTINE shmem\_quiet(ctx) + +\textit{Arguments}: + +TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx + +\textit{Return}: +None. +& +void shmem\_ctx\_quiet(shmem\_ctx\_t *ctx); +\tabularnewline \hline +%% +SUBROUTINE shmem\_fence(ctx) + +\textit{Arguments}: + +TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx + +\textit{Return}: +None. +& +void shmem\_ctx\_fence(shmem\_ctx\_t *ctx); +\tabularnewline \hline +%% +\end{longtable} + \subsubsection{Distributed Locking Routines} \label{subsubsec:ftn_locks} +\begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} +\hline +\textbf{\Fortran[bind(C)] Language Binding Interface} & +\textbf{\Cstd Language Binding Interface} +\tabularnewline \hline +\endhead +%% +SUBROUTINE shmem\_clear\_lock(lock) + +\textit{Arguments}: + +INTEGER,INTENT(IN) :: lock + +\textit{Return}: +None. +& +void shmem\_clear\_lock(long *lock); +\tabularnewline \hline +%% +SUBROUTINE shmem\_set\_lock(lock) + +\textit{Arguments}: + +INTEGER,INTENT(IN) :: lock + +\textit{Return}: +None. +& +void shmem\_set\_lock(long *lock); +\tabularnewline \hline +%% +PROCEDURE shmem\_test\_lock(lock) + +\textit{Arguments}: + +INTEGER,INTENT(IN) :: ctx + +\textit{Return}: + +INTEGER::status +& +int shmem\_test\_lock(long *lock); +\tabularnewline \hline +%% +\end{longtable} + diff --git a/language/ftn08/overview.tex b/language/ftn08/overview.tex index bd3db5b17..1f26af9c5 100644 --- a/language/ftn08/overview.tex +++ b/language/ftn08/overview.tex @@ -1,20 +1,20 @@ \openshmem \Fortran[bind(C)] language bindings is based on \Fortran-\Cstd -interoperability feature introduced in -\Fortran[2003]\footnote{ISO/IEC 1539-1:2004(E)} language standard. Since -\Fortran[2003] there is a standarized way to generate procedure and derived-type -declarations and global variables which are interoperable with -\Cstd\footnote{ISO/IEC 9899:1999}. A bind(C) attribute is added in the \Fortran +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 \Fortran[bind(C)] language bindings use this standard way to generate \Fortran wrappers over the primary \Cstd language bindings provided by \openshmem. \begin{itemize} + \item All the \openshmem APIs specified by the \openshmem \Fortran[bind(C)] + language bindings are implemented as a wrapper interface using \Fortran + 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. - \item All the \openshmem APIs specified by this language bindings are - implemented as a wrapper interface using \Fortran bind(C) attribute over the - \Cstd language bindings specified by \openshmem specification. \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. @@ -25,9 +25,6 @@ names. \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 in some arguments and perform a - specific operation without returning any values are wrapped as subroutines. - \item As the \Fortran[bind(C)] language bindings are implemented over the - \openshmem \Cstd language bindings, there are no semantic or functional - differences in the \Fortran[bind(C)] language binding interfaces. + wrapped as functions, while those APIs that have some arguments and perform + a specific operation without returning any values are wrapped as subroutines. \end{itemize} From f24f26c8733627e01692a9e6d733779da65b2c8f Mon Sep 17 00:00:00 2001 From: Naveen Namashivayam Ravichandrasekaran Date: Wed, 27 Feb 2019 06:01:35 -0600 Subject: [PATCH 6/7] Update FTN bind(c) overview section --- language/ftn08/overview.tex | 17 +++++++++-------- language/lang_ext_overview.tex | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/language/ftn08/overview.tex b/language/ftn08/overview.tex index 1f26af9c5..f30078eb5 100644 --- a/language/ftn08/overview.tex +++ b/language/ftn08/overview.tex @@ -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} diff --git a/language/lang_ext_overview.tex b/language/lang_ext_overview.tex index aea5902f6..c04c5c2c3 100644 --- a/language/lang_ext_overview.tex +++ b/language/lang_ext_overview.tex @@ -1,7 +1,7 @@ \openshmem provides ISO \Cstd bindings. \Cstd bindings are the primary language 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. From 34ca0a64826a4086655dd7e143c9119ef98f1e25 Mon Sep 17 00:00:00 2001 From: Naveen Namashivayam Ravichandrasekaran Date: Wed, 27 Feb 2019 07:18:46 -0600 Subject: [PATCH 7/7] Update API information --- language/ftn08/api.tex | 160 +++++++++++++++++++++++------------------ 1 file changed, 91 insertions(+), 69 deletions(-) diff --git a/language/ftn08/api.tex b/language/ftn08/api.tex index ffd899e42..af24e8fe7 100644 --- a/language/ftn08/api.tex +++ b/language/ftn08/api.tex @@ -1,13 +1,17 @@ -\subsubsection{Library Setup, Exit, and Query Routines} -\label{subsubsec:ftn_setup} - As the \Fortran[bind(C)] language bindings are implemented over the \openshmem \Cstd language bindings, there are no semantic or functional differences in the -\Fortran[bind(C)] language binding interfaces. Along with the argument and -standard type definition for the \Fortran[bind(C)] language bindings, the -corresponding \Cstd language bindings are provided for semantic reference. +\Fortran[bind(C)] language binding interfaces. The following sections tabulates +the argument and standard type definition for the \Fortran[bind(C)] language +bindings with the corresponding \Cstd language bindings for semantic reference. +Refer \openshmem specification for argument definition, API description, and +explanation on the return values. +\\ +\\ +\\ +\subsubsection{Library Setup, Exit, and Query Routines} +\label{subsubsec:ftn_setup} -\begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} +\begin{longtable}{|p{0.58\textwidth}|p{0.40\textwidth}|} \hline \textbf{\Fortran[bind(C)] Language Binding Interface} & \textbf{\Cstd Language Binding Interface} @@ -16,7 +20,7 @@ \subsubsection{Library Setup, Exit, and Query Routines} %% SUBROUTINE shmem\_init() -\textit{Arguments}: +\textit{Argument Mapping}: None. \textit{Return}: @@ -27,31 +31,29 @@ \subsubsection{Library Setup, Exit, and Query Routines} %% FUNCTION shmem\_my\_pe() -\textit{Arguments}: +\textit{Argument Mapping}: None. \textit{Return}: - -INTEGER :: pe\_index +INTEGER(C\_INT) :: pe\_index & int shmem\_my\_pe(void); \tabularnewline \hline %% FUNCTION shmem\_n\_pes() -\textit{Arguments}: +\textit{Argument Mapping}: None. \textit{Return}: - -INTEGER :: num\_pes +INTEGER(C\_INT) :: num\_pes & int shmem\_n\_pes(void); \tabularnewline \hline %% SUBROUTINE shmem\_finalize() -\textit{Arguments}: +\textit{Argument Mapping}: None. \textit{Return}: @@ -62,9 +64,9 @@ \subsubsection{Library Setup, Exit, and Query Routines} %% SUBROUTINE shmem\_global\_exit(status) -\textit{Arguments}: +\textit{Argument Mapping}: -INTEGER,INTENT(IN) :: status +INTEGER(C\_INT), INTENT(IN) :: status \textit{Return}: None. @@ -77,7 +79,7 @@ \subsubsection{Library Setup, Exit, and Query Routines} \subsubsection{Thread Support} \label{subsubsec:ftn_thread} -\begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} +\begin{longtable}{|p{0.58\textwidth}|p{0.40\textwidth}|} \hline \textbf{\Fortran[bind(C)] Language Binding Interface} & \textbf{\Cstd Language Binding Interface} @@ -86,24 +88,26 @@ \subsubsection{Thread Support} %% FUNCTION shmem\_init\_thread(requested, actual) -\textit{Arguments}: +\textit{Argument Mapping}: -INTEGER,INTENT(IN) :: requested +INTEGER(C\_INT), INTENT(IN) :: requested -TYPE(INTEGER),INTENT(OUT) :: actual +TYPE(INTEGER), INTENT(OUT) :: actual \textit{Return}: -INTEGER :: err +INTEGER(C\_INT) :: error\_code & -int shmem\_init\_thread(int requested, int *actual); +int shmem\_init\_thread(int requested, + +int *actual); \tabularnewline \hline %% SUBROUTINE shmem\_query\_thread(provided) -\textit{Arguments}: +\textit{Argument Mapping}: -TYPE(INTEGER),INTENT(OUT) :: provided +TYPE(INTEGER), INTENT(OUT) :: provided \textit{Return}: None. @@ -120,7 +124,7 @@ \subsubsection{Memory Management Routines} \subsubsection{Communication Management Routines} \label{subsubsec:ftn_comm_manage} -\begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} +\begin{longtable}{|p{0.58\textwidth}|p{0.40\textwidth}|} \hline \textbf{\Fortran[bind(C)] Language Binding Interface} & \textbf{\Cstd Language Binding Interface} @@ -129,24 +133,26 @@ \subsubsection{Communication Management Routines} %% FUNCTION shmem\_ctx\_create(options, ctx) -\textit{Arguments}: +\textit{Argument Mapping}: -INTEGER, INTENT(IN) :: options +INTEGER(C\_INT), INTENT(IN) :: options -TYPE(shmem\_ctx\_t),INTENT(OUT) :: ctx +TYPE(shmem\_ctx\_t), INTENT(OUT) :: ctx \textit{Return}: -INTEGER :: err +INTEGER(C\_INT) :: error\_code & -int shmem\_ctx\_create(long options, shmem\_ctx\_t *ctx); +int shmem\_ctx\_create(long options, + +shmem\_ctx\_t *ctx); \tabularnewline \hline %% SUBROUTINE shmem\_ctx\_destroy(ctx) -\textit{Arguments}: +\textit{Argument Mapping}: -TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx +TYPE(shmem\_ctx\_t), INTENT(IN) :: ctx \textit{Return}: None. @@ -160,22 +166,26 @@ \subsubsection{Communication Management Routines} \subsubsection{Remote Memory Access Routines} \label{subsubsec:ftn_rma} -\begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} +\begin{longtable}{|p{0.58\textwidth}|p{0.40\textwidth}|} \hline \textbf{\Fortran[bind(C)] Language Binding Interface} & \textbf{\Cstd Language Binding Interface} \tabularnewline \hline \endhead %% -SUBROUTINE shmem\_putmem(dest, src, nelems, pe, ctx) +SUBROUTINE shmem\_putmem(dest, src, nbytes, pe, ctx) -\textit{Arguments}: +\textit{Argument Mapping}: -TYPE(*),DIMENSION(*),INTENT(IN) :: dest, src +TYPE(*),DIMENSION(*),INTENT(OUT) :: dest -INTEGER, INTENT(IN) :: nelems, pe +TYPE(*),DIMENSION(*),INTENT(IN) :: src -TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx +INTEGER(C\_SIZE\_T), INTENT(IN) :: nbytes + +INTEGER(C\_INT), INTENT(IN) :: pe + +TYPE(shmem\_ctx\_t), OPTIONAL, INTENT(IN) :: ctx \textit{Return}: None. @@ -183,15 +193,19 @@ \subsubsection{Remote Memory Access Routines} void shmem\_ctx\_putmem(shmem\_ctx\_t *ctx, void *dest, const void *src, size\_t nelems, int pe); \tabularnewline \hline %% -SUBROUTINE shmem\_getmem(dest, src, nelems, pe, ctx) +SUBROUTINE shmem\_getmem(dest, src, nbytes, pe, ctx) + +\textit{Argument Mapping}: + +TYPE(*),DIMENSION(*),INTENT(OUT) :: dest -\textit{Arguments}: +TYPE(*),DIMENSION(*),INTENT(IN) :: src -TYPE(*),DIMENSION(*),INTENT(IN) :: dest, src +INTEGER(C\_SIZE\_T), INTENT(IN) :: nbytes -INTEGER, INTENT(IN) :: nelems, pe +INTEGER(C\_INT), INTENT(IN) :: pe -TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx +TYPE(shmem\_ctx\_t), OPTIONAL, INTENT(IN) :: ctx \textit{Return}: None. @@ -205,22 +219,26 @@ \subsubsection{Remote Memory Access Routines} \subsubsection{Non-blocking Remote Memory Access Routines} \label{subsubsec:ftn_rma_nbi} -\begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} +\begin{longtable}{|p{0.58\textwidth}|p{0.40\textwidth}|} \hline \textbf{\Fortran[bind(C)] Language Binding Interface} & \textbf{\Cstd Language Binding Interface} \tabularnewline \hline \endhead %% -SUBROUTINE shmem\_putmem\_nbi(dest, src, nelems, pe, ctx) +SUBROUTINE shmem\_putmem\_nbi(dest, src, nbytes, pe, ctx) -\textit{Arguments}: +\textit{Argument Mapping}: -TYPE(*),DIMENSION(*),INTENT(IN) :: dest, src +TYPE(*),DIMENSION(*),INTENT(OUT) :: dest -INTEGER, INTENT(IN) :: nelems, pe +TYPE(*),DIMENSION(*),INTENT(IN) :: src -TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx +INTEGER(C\_SIZE\_T), INTENT(IN) :: nbytes + +INTEGER(C\_INT), INTENT(IN) :: pe + +TYPE(shmem\_ctx\_t), OPTIONAL, INTENT(IN) :: ctx \textit{Return}: None. @@ -228,15 +246,19 @@ \subsubsection{Non-blocking Remote Memory Access Routines} void shmem\_ctx\_putmem\_nbi(shmem\_ctx\_t *ctx, void *dest, const void *src, size\_t nelems, int pe); \tabularnewline \hline %% -SUBROUTINE shmem\_getmem\_nbi(dest, src, nelems, pe, ctx) +SUBROUTINE shmem\_getmem\_nbi(dest, src, nbytes, pe, ctx) + +\textit{Argument Mapping}: + +TYPE(*),DIMENSION(*),INTENT(OUT) :: dest -\textit{Arguments}: +TYPE(*),DIMENSION(*),INTENT(IN) :: src -TYPE(*),DIMENSION(*),INTENT(IN) :: dest, src +INTEGER(C\_SIZE\_T), INTENT(IN) :: nbytes -INTEGER, INTENT(IN) :: nelems, pe +INTEGER(C\_INT), INTENT(IN) :: pe -TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx +TYPE(shmem\_ctx\_t), OPTIONAL, INTENT(IN) :: ctx \textit{Return}: None. @@ -259,7 +281,7 @@ \subsubsection{Point-To-Point Synchronization Routines} \subsubsection{Memory Ordering Routines} \label{subsubsec:ftn_mem_order} -\begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} +\begin{longtable}{|p{0.58\textwidth}|p{0.40\textwidth}|} \hline \textbf{\Fortran[bind(C)] Language Binding Interface} & \textbf{\Cstd Language Binding Interface} @@ -268,9 +290,9 @@ \subsubsection{Memory Ordering Routines} %% SUBROUTINE shmem\_quiet(ctx) -\textit{Arguments}: +\textit{Argument Mapping}: -TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx +TYPE(shmem\_ctx\_t), OPTIONAL, INTENT(IN) :: ctx \textit{Return}: None. @@ -280,9 +302,9 @@ \subsubsection{Memory Ordering Routines} %% SUBROUTINE shmem\_fence(ctx) -\textit{Arguments}: +\textit{Argument Mapping}: -TYPE(shmem\_ctx\_t),INTENT(IN) :: ctx +TYPE(shmem\_ctx\_t), OPTIONAL, INTENT(IN) :: ctx \textit{Return}: None. @@ -295,7 +317,7 @@ \subsubsection{Memory Ordering Routines} \subsubsection{Distributed Locking Routines} \label{subsubsec:ftn_locks} -\begin{longtable}{|p{0.45\textwidth}|p{0.5\textwidth}|} +\begin{longtable}{|p{0.58\textwidth}|p{0.40\textwidth}|} \hline \textbf{\Fortran[bind(C)] Language Binding Interface} & \textbf{\Cstd Language Binding Interface} @@ -304,9 +326,9 @@ \subsubsection{Distributed Locking Routines} %% SUBROUTINE shmem\_clear\_lock(lock) -\textit{Arguments}: +\textit{Argument Mapping}: -INTEGER,INTENT(IN) :: lock +INTEGER(C\_LONG),INTENT(IN) :: lock \textit{Return}: None. @@ -316,9 +338,9 @@ \subsubsection{Distributed Locking Routines} %% SUBROUTINE shmem\_set\_lock(lock) -\textit{Arguments}: +\textit{Argument Mapping}: -INTEGER,INTENT(IN) :: lock +INTEGER(C\_LONG),INTENT(IN) :: lock \textit{Return}: None. @@ -326,15 +348,15 @@ \subsubsection{Distributed Locking Routines} void shmem\_set\_lock(long *lock); \tabularnewline \hline %% -PROCEDURE shmem\_test\_lock(lock) +FUNCTION shmem\_test\_lock(lock) -\textit{Arguments}: +\textit{Argument Mapping}: -INTEGER,INTENT(IN) :: ctx +INTEGER(C\_LONG),INTENT(IN) :: ctx \textit{Return}: -INTEGER::status +INTEGER(C\_INT)::status & int shmem\_test\_lock(long *lock); \tabularnewline \hline