|
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