|
62 | 62 | \item After standardization and implementation in compilers
|
63 | 63 | \end{itemize}
|
64 | 64 | \item No Standard Library
|
| 65 | + \begin{itemize} |
| 66 | + \item Several attempts in the past (e.g. available on GitHub) |
| 67 | + \end{itemize} |
65 | 68 | \end{itemize}
|
66 | 69 | \center
|
67 | 70 | \textcolor{red}{\textbf{Consequence: we all reinvent the wheel continuously!}}
|
|
72 | 75 | \center
|
73 | 76 | \Large
|
74 | 77 | \textcolor{blue}{Develop} and \textcolor{blue}{provide}\\
|
75 |
| - a \textcolor{blue}{community} driven and agreed upon de facto\\ |
| 78 | + a \textcolor{blue}{community} driven and agreed-upon de facto\\ |
76 | 79 | \textcolor{blue}{standard library}\\
|
77 | 80 | for Modern Fortran
|
78 | 81 | \end{frame}
|
|
83 | 86 | \begin{itemize}
|
84 | 87 | \item One of the four pillars of \textcolor{blue}{fortran-lang}
|
85 | 88 | \item \textcolor{blue}{MIT} License
|
86 |
| - \item GitHub: https://github.com/fortran-lang/stdlib |
87 |
| - \item API docs: https://stdlib.fortran-lang.org |
| 89 | + \item Aims to collaborate with the Fortran Standard Committee |
| 90 | + \item Links: |
| 91 | + \begin{itemize} |
| 92 | + \item GitHub: https://github.com/fortran-lang/stdlib |
| 93 | + \item API docs: https://stdlib.fortran-lang.org |
| 94 | + \end{itemize} |
88 | 95 | \end{itemize}
|
89 | 96 | \end{frame}
|
90 | 97 |
|
|
111 | 118 | \end{frame}
|
112 | 119 |
|
113 | 120 |
|
| 121 | +\begin{frame}[c]{Currently discussed in stdlib} |
| 122 | + Several discussions on: |
| 123 | + \begin{itemize} |
| 124 | + \item Assertion |
| 125 | + \item Logging |
| 126 | + \item OS integration |
| 127 | + \item Random numbers |
| 128 | + \item Sparse matrices |
| 129 | + \item Special functions |
| 130 | + \item Strings |
| 131 | + \item ... |
| 132 | + \end{itemize} |
| 133 | +\end{frame} |
| 134 | + |
| 135 | + |
114 | 136 | \begin{frame}[c]{Currently implemented in stdlib}
|
115 | 137 | \begin{block}{~\vspace{0.5cm}}
|
116 | 138 | \vspace{-0.8cm}
|
|
143 | 165 | \end{itemize}
|
144 | 166 | \end{frame}
|
145 | 167 |
|
146 |
| -\begin{frame}[fragile]{Examples} |
| 168 | +\begin{frame}[fragile]{Example - \textit{optval} + \textit{fypp}} |
| 169 | + |
147 | 170 | \begin{lstlisting}
|
| 171 | + #:set KINDS_TYPES = REAL_KINDS_TYPES + INT_KINDS_TYPES + & |
| 172 | + & CMPLX_KINDS_TYPES + [('l1','logical')] |
148 | 173 | ...
|
149 |
| - use stdlib_experimental_io, only: loadtxt, savetxt |
150 |
| - use stdlib_experimental_linalg, only: diag |
151 |
| - use stdlib_experimental_stats, only: moment |
152 |
| - ... |
153 |
| - real, allocatable :: A(:,:) |
154 |
| - call loadtxt('example.dat', A) |
155 |
| - ... |
156 |
| - print*, diag(A) |
157 |
| - ... |
158 |
| - call savetxt('moment.dat',& |
159 |
| - moment(A, order = 3, dim = 1, mask = (A > 5.))) |
160 |
| - ... \end{lstlisting} |
| 174 | + #:for k1, t1 in KINDS_TYPES |
| 175 | + pure elemental function optval_${t1[0]}$${k1}$(x, default)& |
| 176 | + result(y) |
| 177 | + ${t1}$, intent(in), optional :: x |
| 178 | + ${t1}$, intent(in) :: default |
| 179 | + ${t1}$ :: y |
| 180 | + ... |
| 181 | + end function optval_${t1[0]}$${k1}$ |
| 182 | + #:endfor\end{lstlisting} |
| 183 | + |
161 | 184 | \end{frame}
|
162 | 185 |
|
163 | 186 |
|
164 |
| -\begin{frame}[fragile]{Example - optval} |
| 187 | +\begin{frame}[fragile]{Example - \textit{optval}} |
165 | 188 | \begin{lstlisting}
|
166 | 189 | ...
|
167 | 190 | use stdlib_experimental_optval, only: optval
|
|
175 | 198 | \end{frame}
|
176 | 199 |
|
177 | 200 |
|
| 201 | +\begin{frame}[fragile]{Examples} |
| 202 | + \begin{lstlisting} |
| 203 | + ... |
| 204 | + use stdlib_experimental_io, only: loadtxt, savetxt |
| 205 | + use stdlib_experimental_linalg, only: diag |
| 206 | + use stdlib_experimental_stats, only: moment |
| 207 | + ... |
| 208 | + real, allocatable :: A(:,:) |
| 209 | + call loadtxt('example.dat', A) |
| 210 | + ... |
| 211 | + print*, diag(A) |
| 212 | + ... |
| 213 | + call savetxt('moment.dat',& |
| 214 | + moment(A, order = 3, dim = 1, mask = (A > 5.))) |
| 215 | + ... \end{lstlisting} |
| 216 | +\end{frame} |
| 217 | + |
| 218 | + |
178 | 219 | \begin{frame}[c]{API docs (https://stdlib.fortran-lang.org)}
|
179 | 220 | \begin{center}
|
180 | 221 | \includegraphics[width=0.9\textwidth]{apidocsstdlib}
|
|
200 | 241 |
|
201 | 242 |
|
202 | 243 | \begin{frame}[c]{Contributions through GitHub}
|
203 |
| - https://github.com/fortran-lang/stdlib\\ |
204 |
| - \textcolor{blue}{Source codes} |
| 244 | + %https://github.com/fortran-lang/stdlib\\ |
| 245 | + Since \textcolor{blue}{December 2019}: |
| 246 | + \begin{itemize} |
| 247 | + \item \textcolor{blue}{Source codes} |
205 | 248 | \begin{itemize}
|
206 | 249 | \item 16 contributors
|
207 | 250 | \item $>$ 100 Pull Requests
|
208 | 251 | \end{itemize}
|
209 |
| - \textcolor{blue}{Issues / ideas / comments} |
| 252 | + \item \textcolor{blue}{Issues / ideas / comments} |
210 | 253 | \begin{itemize}
|
211 | 254 | \item 47 contributors
|
212 | 255 | \item $>$ 110 GitHub issues
|
213 | 256 | \end{itemize}
|
| 257 | + \end{itemize} |
214 | 258 | \end{frame}
|
215 | 259 |
|
216 | 260 |
|
| 261 | +\begin{frame}[c]{How to contribute to stdlib?} |
| 262 | + \begin{center} |
| 263 | + \Huge{\textcolor{red}{Any contribution is welcome!}} |
| 264 | + \end{center} |
| 265 | +\end{frame} |
| 266 | + |
217 | 267 | \begin{frame}[c]{How to contribute to stdlib?}
|
218 | 268 | \textcolor{blue}{Through GitHub}\\
|
219 | 269 | \begin{itemize}
|
220 |
| - \item Issues |
| 270 | + \item \textcolor{mygreen}{Issues} |
221 | 271 | \begin{itemize}
|
222 | 272 | \item Proposition of ideas, issues, comments
|
223 | 273 | \end{itemize}
|
224 |
| - \item Pull Requests |
| 274 | + \item \textcolor{mygreen}{Pull Requests} |
225 | 275 | \begin{itemize}
|
226 | 276 | \item To contribute to the source code and specs
|
| 277 | + \item Might be based on existing contributors' code (License!) |
227 | 278 | \end{itemize}
|
228 | 279 | \end{itemize}
|
229 | 280 | \textcolor{blue}{Code of Conduct}\\
|
| 281 | + \begin{itemize} |
| 282 | + \item Please check it first! |
| 283 | + \end{itemize} |
230 | 284 | \end{frame}
|
231 | 285 |
|
232 | 286 | \begin{frame}[c]{Contributing to the source code?}
|
233 |
| - \textcolor{blue}{Workflow} |
| 287 | + \textcolor{blue}{Workflow} (See the complete description on GitHub) |
234 | 288 | \begin{enumerate}
|
235 | 289 | \item Proposition of an \textbf{idea}
|
236 | 290 | \item Proposition of the \textbf{API}
|
237 | 291 | \item Discussion of the \textbf{specs}
|
238 | 292 | \item Pull request of an \textbf{implementation} in the experimental namespace + associated unit tests
|
239 |
| - \item Stable \textbf{release} of procedures in the experimental namespace |
| 293 | + \item Stable \textbf{release} of procedures in the experimental namespace (still to be clarified) |
240 | 294 | \end{enumerate}
|
241 | 295 | \end{frame}
|
242 | 296 |
|
|
0 commit comments