summaryrefslogtreecommitdiff
path: root/doc/f2py/bugs.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/f2py/bugs.tex')
-rw-r--r--doc/f2py/bugs.tex109
1 files changed, 0 insertions, 109 deletions
diff --git a/doc/f2py/bugs.tex b/doc/f2py/bugs.tex
deleted file mode 100644
index bbfce0f9a..000000000
--- a/doc/f2py/bugs.tex
+++ /dev/null
@@ -1,109 +0,0 @@
-
-\section{Bugs, Plans, and Feedback}
-\label{sec:bugs}
-
-Currently no bugs have found that I was not able to fix. I will be
-happy to receive bug reports from you (so that I could fix them and
-keep the first sentence of this paragraph as true as possible ;-).
-Note that \fpy is developed to work properly with gcc/g77
-compilers.
-\begin{description}
-\item[NOTE:] Wrapping callback functions returning \texttt{COMPLEX}
- may fail on some systems. Workaround: avoid it by using callback
- subroutines.
-\end{description}
-
-Here follows a list of things that I plan to implement in (near) future:
-\begin{enumerate}
-\item recognize file types by their extension (signatures:
- \texttt{*.pyf}, Fortran 77, Fortran 90 fixed: \texttt{*.f, *.for, *.F, *.FOR},
- Fortran 90 free: \texttt{*.F90, *.f90, *.m, *.f95, *.F95}); [DONE]
-\item installation using \texttt{distutils} (when it will be stable);
-\item put out to the web examples of \fpy usages in real situations:
- wrapping \texttt{vode}, for example;
-\item implement support for \texttt{PARAMETER} statement; [DONE]
-\item rewrite test-site;
-\item ...
-\end{enumerate}
-and here are things that I plan to do in future:
-\begin{enumerate}
-\item implement \texttt{intent(cache)} attribute for an optional work
- arrays with a feature of allocating additional memory if needed;
-\item use \fpy for wrapping Fortran 90/95 codes. \fpy should scan
- Fortran 90/95 codes with no problems, what needs to be done is find
- out how to call a Fortran 90/95 function (from a module) from
- C. Anybody there willing to test \fpy with Fortran 90/95 modules? [DONE]
-\item implement support for Fortran 90/95 module data; [DONE]
-\item implement support for \texttt{BLOCK DATA} blocks (if needed);
-\item test/document \fpy for \texttt{CHARACTER} arrays;
-\item decide whether internal transposition of multi-dimensional
- arrays is reasonable (need efficient code then), even if this is
- controlled by the user trough some additional keyword; need
- consistent and safe policy here;
-\item use \fpy for generating wrapper functions also for C programs (a
- kind of SWIG, only between Python and C). For that \fpy needs a
- command line switch to inform itself that C scalars are passed in by
- their value, not by their reference, for instance;
-\item introduce a counter that counts the number of inefficient usages
- of wrapper functions (copying caused by type-casting, non-contiguous
- arrays);
-\item if needed, make \texttt{DATA} statement to work properly for
- arrays;
-\item rewrite \texttt{COMMON} wrapper; [DONE]
-\item ...
-\end{enumerate}
-I'll appreciate any feedback that will improve \fpy (bug reports,
-suggestions, etc). If you find a correct Fortran code that fails with
-\fpy, try to send me a minimal version of it so that I could track
-down the cause of the failure. Note also that there is no sense to
-send me files that are auto-generated with \fpy (I can generate them
-myself); the version of \fpy that you are using (run \texttt{\fpy\
- -v}), and the relevant fortran codes or modified signature files
-should be enough information to fix the bugs. Also add some
-information on compilers and linkers that you use to the bug report.
-
-
-\section{History of \fpy}
-\label{sec:history}
-
-\begin{enumerate}
-\item I was driven to start developing a tool such as \fpy after I had
- wrote several Python C/API modules for interfacing various Fortran
- routines from the Netlib. This work was tedious (some of functions
- had more than 20 arguments, only few of them made sense for the
- problems that they solved). I realized that most of the writing
- could be done automatically.
-\item On 9th of July, 1999, the first lines of the tool was written. A
- prototype of the tool was ready to use in only three weeks. During
- this time Travis Oliphant joined to the project and shared his
- valuable knowledge and experience; the call-back mechanism is his
- major contribution. Then I gave the tool to public under the name
- FPIG --- \emph{Fortran to Python Interface Generator}. The tool contained
- only one file \texttt{f2py.py}.
-\item By autumn, it was clear that a better implementation was needed
- as the debugging process became very tedious. So, I reserved some
- time and rewrote the tool from scratch. The most important result of
- this rewriting was the code that reads real Fortran codes and
- determines the signatures of the Fortran routines. The main
- attention was paid in particular to this part so that the tool
- could read arbitrary Fortran~77/90/95 codes. As a result, the other
- side of the tools task, that is, generating Python C/API functions,
- was not so great. In public, this version of the tool was called
- \texttt{f2py2e} --- \emph{Fortran to Python C/API generator, the
- Second Edition}.
-\item So, a month before The New Year 2000, I started the third
- iteration of the \fpy development. Now the main attention was to
- have a good C/API module constructing code. By 21st of January,
- 2000, the tool of generating wrapper functions for Fortran routines
- was ready. It had many new features and was more robust than ever.
-\item In 25th of January, 2000, the first public release of \fpy was
- announced (version 1.116).
-\item In 12th of September, 2000, the second public release of \fpy was
- announced (version 2.264). It now has among other changes a support
- for Fortran 90/95 module routines.
-\end{enumerate}
-
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "f2py2e"
-%%% End: