Skip to content

Incorporating tlfloat as a submodule #568

@shibatch

Description

@shibatch

As described in #544, I am now considering to incorporate tlfloat as a submodule of sleef.
The primary reason for incorporating tlfloat is to provide an alternative tester to tester1, as described in #544.
I'll post a separate issue with more details, but the goal is to provide a testing equivalent to tester1 for those environments where mpfr cannot be used.
This is not intended to completely replace the current tester1 with the new tester with tlfloat. The new tester will be only an alternative.
When building sleef, you will be able to specify whether or not to use the tlfloat functionality by using a cmake option.

In addition to the new tester, tlfloat makes it easier for sleef to handle data types that are not directly supported by each architecture (e.g. float16 and float128).
Some functions of sleef (such as printf) have no room for vectorization, and it is more appropriate to implement them in tlfloat than in sleef.
In the future, implementation of functions such as printf will be removed from sleef and the equivalent functions in tlfloat will be called.
This means that when I add the new tester, the users will be allowed to choose whether or not to use the tlfloat feature, but in the future I will need to tightly couple the tlfloat as part of the sleef functionality.

For the above reasons, I believe it is appropriate to incorporate tlfloat as a submodule of sleef.
Concerns regarding incorporating tlfloat as a sleef submodule include the following.

  • tlfloat is not a widely used library at this point, so it would be appropriate to include it as a submodule
    • Is it actually better to use find_library etc. like other libraries?
    • Can other projects using sleef be compatible?
  • tlfloat needs to be built with C++20.
    • Since the current sleef can be built only with a C compiler, this could create confusion.
    • C++20 is a new standard, so other projects using older compilers may have difficulty
    • clang-16 or earlier cannot build tlfloat due to compiler bugs

In addition, tlfloat incorporates a new code of conduct. This code of conduct is still being edited in parallel with the development of tlfloat.
I would like to adopt the same code of conduct in sleef in the future, but only after I have received positive feedback from sleef users and other people, and have confirmed that there is sufficient support for the new code of conduct.

For more information, see https://github.com/shibatch/nofreelunch, and please write to https://github.com/shibatch/nofreelunch/discussions with your comments on this code of conduct.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions