PDL TODO List
This is a short-term list. Please add things here that need to be done before 2.4.8 release. Derek will get to as much as he can after March 18th.
change scikarl to sciPDL update image on homepage slideshow for 2.4.8 update link for release notes to 2.4.8 users map needs to be fixed. It currently doesn't show any pushpins
- fix online doc link processing SF#3161459
update fedora install docs (see Leandro Hermida's emails from March 2011 to perldl list) upload docs for 2.4.8 change Get Docs link from frontpage (owl) to point to content/reference.html add Git Browse to Development submenu reorganize "PDL Mailing Lists" to simplify (I think it would be to clearer if the Perldl list Subscribe link was moved to the list name line (e.g. "Users list" becomes "Users list (Subscribe)" and making the sub-bullets Archives and "Old Archives (pre-2005)". Similarly for the other two lists items on that page.
update Easiest install for Windows (new directions are in win32/INSTALL
put www guide on wiki so other developers can help with editsThis was added to the Developer's Corner page.
- Add tests in t/misc.t for the new rcol/wcols CSV and PERLCOLS support
- Cleanup t/flexraw.t
- Check that Perl OpenGL is automatically built as a dependency via cpan if it is not already installed. If not, fix it.
- Basic/Gen/PP.pm could do with a good clean out/re-factoring. On the larger, architectural, scale it would be good to decide how to handle some of the "families"-related code (i.e. those ideas that were never quite implemented). There's plenty of ifdef-fed code in Basic/Core/ that could be reviewed/implemented/removed.
- Post 2.4.3, need to look at the "badvalue" code to see how to improve routines like fibonacci (i.e. those that have no input piddles). At present the code is doing stuff it needn't. It probably won't save much execution time, but might reduce code size/build time/...
- It would be great if, post 2.4.3, we could move from using ExtUtils::MakeMaker to Module::Build
- At the very least we could do with an overhaul of the build processr:
1) there are a number of optional modules that have slightly-different ways of determining whether to be built or not. 2) there's too much screen output during the 'perl Makefile.PL' phase. This info is useful for testing/debugging/developing but: a) should be made optional b) could be output at the end of the run rather than during it, to make it easier to track down what has/has not been decided
- Think about subclassed PDLs and how to stop them from breaking indexing operations. For example, PDL::Char types can't be diced properly with dice() because the input variables seem to be promoted to PDL::Char. (workaround: use niceslice instead). Myriad other problems with complex numbers and quaternions. This relates to bug #974581.
- Issues with pointer casting (bug 1051810) in some of the redodims code. The "uninitialized memory read errors" mentioned in that bug are especially troubling, and indicate some fallacious logic in the deep guts of PP-generated code. (They're part of the generated _redodims code; see the bug). There are other hints of trouble in PP, notably the need in some of the trans code to inspect the PDL "signature" at the beginning of a block of memory to see if it has been initialized already. Such signatures of course become more common in random bits of memory as a process runs. That stuff needs looking into.
- add GLOBALLIBS modifier to perldl.conf and PDLWriteMakefile routine to Dev.pm that will honour it. Then change WriteMakfile calls in all Makefile.PLs in the dist into PDLWriteMakefile
- 'sever' additional docs
- fix some of the inaccuracies in PDL::Internals
- PDL::Doc : learn to cope with duplicate function names (e.g. PDL::min and PDL::GSL::RNG::min) install scanpdldocs script to make it easier to add user docs to the online docs database postamble code: standard postamble for docscanning of user modules (to be used in Makefile.PL)
- perldl docs on builtin niceslicing
- nslice docs
- more Inline::Pdlpp docs
- AutoLoader import hash => can wait
- Overarching graphics object -- would be nice to have high level functionality in PLPLOT.
- get rid of 'swap' parameter when calling bifuncs explicitly
- overhaul core interfaces, move deprecated interfaces into own module
- sort out interface to different interpolation codes (PDL::Func and the old PDL::Interpolate/PDL::Interpolate::Slatec modules which are included in the distribution but are not installed)
- make more routines 'bad value' aware
- tests for new features of at, set, getdim
- tests for PDL::Matrix
- implement the new NiceSlice ideas (trailing modifiers, '/' diag, '<-> xchg', etc)
- PDL::PP::Inline !!!
- foo(zeroes(float,3))) and foo is defined only for byte doesn't work. ??? Doesn't it?
- Dependencies on pdl.h everywhere
- Reorganize Demos/TriD.
- Transcendential functions should always return at least floats
- [xvyz]rvals now act like zeroes - but they now act like constructors so $derived->xvals does not give you what you expect. Need to think about this some more.
- PDL::IO::Pic should barf when converter not available
- **** Quick: SV * must be allowed for OtherPars.
- clean Dev.pm (perl is clever enough to know if it's in the build tree or outside)
- PThread: if multithreading is turned on on a pdl after it has been incorporated into a transformation, there will probably be trouble worth of a coredump at some point. Watch out.
- PP: fix phys pointers!!
- PP: OtherTypes
- PP: Input pars => dims (generalize "where")
- clean .pd -> .c files
- ->setdims followed by ->set_datatype crashes
- PDL::Trans objects, getting parents, etc.
- Perl-level threading, use subs with indices etc.
- document ->thread & no null. Document limitations and undefined things about the trans system.
- Make PDL::PP and other documentation up to date.
- DProf doesn't work with pdl for some reason.. check.
- Remove the 'pdl' prefix from PDL/Core/*.c
- local $epsilon used for
- Dataflow + persistence
- Improved COMPLEX NUMBER support
- Improve pdl_whichdatatype and PDL::PP so we don't need to do stupid interconversions.
- Clean up pdl_converttype and SvPDLV: we could do with a lot less pdl_mallocs.
- DSA writer/header handling
- sort ($x,$y,$z...) - 1D only -along some dimensions, by some rules.
- Grow list -> (N+1) Dim
- Matrix inverse (via following:)
- linear system solver
- Interpolation - 2D and 3D
- Improve 3D
- N-D plots