Skip to content
Katherine edited this page Mar 16, 2022 · 6 revisions

TenDRA: What do we need help with?

See Roadmap for a quick overview, and the good first issue open issues.

Here are the big areas:

  • Generally just making things work again
    This codebase has sat quietly for a while. Some of it needs a bit of re-discovery.

  • Porting (to target different OS/Architectures)
    TenDRA has a pretty different internal approach for system headers, where it relates a libc to each standard's API and accounts for any differences. These differences are arranged per libc, per architecture, per OS version.

    Typically we can just copy whatever's already there, but sometimes it's something new. Either way, it needs to be done by hand, and support for more platforms is always welcome.

    All the OS-dependent stuff lives here: /osdep

  • Code generation for new architectures
    We have 32-bit x86, and several others. amd64, llvm and wasm are missing. Those are big! We need those!

    Have a look at the existing code generation: /trans

  • C99/C11 Support
    We have C89, and C++98. We have some early work on C99, and there's some work for various C99 features which need porting over from a different branch. There's also the new parts of the grammar to add. It's all set up pretty cleanly so you can see where that would go - it just hasn't been done yet.

    Check out the C and C++ front-ends here: /tdfc2

  • Testing
    Boy do we need tests. Especially for C/C++ language conformance. The original codebase was tested against a commercial validation suite. We don't have that, here in the open source world.

  • Documentation
    No, the documentation is excellent. One of the few projects where I'm happy to say that's covered already.

Things I think are priorities: Up to date OS support, C99, amd64, llvm.

Come say hi on #tendra