Git Product home page Git Product logo

flexclass's People

Contributors

actions-user avatar brenoguim avatar eullerborges avatar thamara avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

flexclass's Issues

Implement arrays *behind* the user object

Today the library only creates the Object + arrays in that sequence.
It would be nice to have a "BackwardAdjacentArray" which would cause the layout to be:

 | arrays | user object | more arrays |

Add a unit test to verify size of the library after preprocess

One strong goal of this library is to include as few headers as possible. It is on purpose that we avoid <memory> and <tuple> headers.

In GCC, the library expands to 5000 lines today

The task at hand is to add test (somehow) to verify that the expanded code is less than 6000 lines.

Add performance verification test

The library contains a benchmark directory with a single benchmark. It would be nice to have a check that the performance using the library is actually better than the performance without it.

Not sure how to implement that. People with experience in Catch2 and cmake wanted :)

Make the wins of using the library more clear on "Problem Statement"

I have seen a lots of confused feedback from people who did not understand what the library does and how it helps.

It would be nice to have a more clear diagram showing layout differences, and have a smaller description that makes the advantages crystal clear. I really don't know how to explain it better :(

Add more performance tests

We have a single benchmark using a graph. New cool applications to showcase the power of the library wanted.

Review documentation

I went through multiple iterations of this library, so both the Readme and the UserGuide may be out of date.

The task at hand is to review and reproduce examples and make sure they all compile and make sense.

Refactor 'basic' tests

The main test file (tests/unit/basic.test.cpp) contains a lot of duplicated code, it's not very thorough and doesn't test many of the corner cases.

It would be nice to cleanup, reuse, add more tests... Anything improving tests will count!

Add function documentation

The library has little to no comments. It would be great to go over all functions and tricky code and document it.

Extract the core engine (and make a paper out of it?)

The fundamental building blocks of this library can be seen as:

template<class... Ts>
auto allocate_adjacent_arrays(std::integral auto... sizes) -> std::tuple<std::pair<Ts*, Ts*>...>;

This function would allocate a single block of memory that fits sizeof...(Ts) arrays which the sizes are given in sizes. The return value returns pointers to (non-constructed) objects inside this.

The second building block would be something like std::uninitialized_value_construct which support multiple begin/end iterators.

Then it should be very easy to build this library.

Add code coverage

A lot of the code is templated but it would be nice to have code coverage infrastructure.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.