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

Reply via email to