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 <[email protected]>
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 <[email protected]>
> 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
>> [email protected]
>> 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
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl