PDL::Tiny would essentially provide the core types, computation, and framework for the next-gen PDL3 implementation. Since it is focused on the core of what and how PDL would or should work, it gives us a laboratory to quickly implement and refine these ideas. Here are my thoughts on the initial development:
- Use github.com for faster code development rather than stability - Start with perl-level Moo OO structure for PDL - Roles and architecture are critical for new PDL3 - We could even begin with perl-only implementations - Types, Arrays, Units, ... - Can work on JIT-PP code generation - What are the key dimensions of PDL computation? - Indexing, threadloops,... - Should be upgradable to full PDL capabilities - PDL-2.x via has-a support? - PDL3 as it is implementation - Other options for KISS and lightweight compute - What about testing and backward compatibility - Test against PDL-2.x t/ possible? - Options for test driven development - Performance evaluation/metrics - It should be possible to evaluate options for C-OO and C-PDL - Enlightenment Object model looks promising - Want PDL from perl and PDL from C to be equivalent - Would enable multi-threaded and parallel/GPU compute Exactly how tiny is possible or desired could be a result of the development. --Chris On Sun, Dec 14, 2014 at 4:22 PM, David Mertens <dcmertens.p...@gmail.com> wrote: > > Hey Chris, > > What exactly is the aim of this project? Is this a 90% reimplementation of > PDL? If so, I would really like to have a well thought-out C API, so that I > can easily create new PDLs from my C or C-like code. I would also really > like to be able to call PDL functions from C. > > Whether those belong in a Tiny module I cannot say. It depends on what > you're trying to make tiny. :-) > > David > > On Sun, Dec 14, 2014 at 11:31 AM, Chris Marshall <devel.chm...@gmail.com> > wrote: > >> To support POGL2 development (updating Perl OpenGL bindings to APIs 3.x, >> 4.x, and the ES variants) and as a start at the PDL3 core implementation, >> I'm preparing a PDL::Tiny module and am looking for your input on what you >> think should or should not be in it. Here are my general thoughts so far: >> >> - The basic PDL::Tiny object starts with Moo >> - This allows full meta-object programming via Moose >> - Interoperable with state of the art perl OO programming >> - KISS principle is satisfied >> - Additional capabilities would be added via Roles >> - Data allocation >> - Data types >> - Computation support >> - Threading/vectorization >> - PDL::Tiny should interoperate with PDL-2.x >> - Using PDL::Objects support >> - Allows PDL-2.x and PDL3 options >> - Perhaps a pure-perl implementation >> >> >> This will give a concrete platform with which to develop PDL3 concepts. >> In addition, I plan to set up a github project for this effort so I can >> come up to speed with that platform and to encourage rapid development. >> >> I welcome your thoughts and suggestions >> >> Regards, >> Chris (with my PDL3 and POGL2 hats on) >> >> >> >> _______________________________________________ >> Perldl mailing list >> Perldl@jach.hawaii.edu >> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl >> >> > > -- > "Debugging is twice as hard as writing the code in the first place. > Therefore, if you write the code as cleverly as possible, you are, > by definition, not smart enough to debug it." -- Brian Kernighan >
_______________________________________________ Perldl mailing list Perldl@jach.hawaii.edu http://mailman.jach.hawaii.edu/mailman/listinfo/perldl