AmigaPorts / AmigaPorts/ACE

Convert codebase to C++?

未关闭
#153 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
enhancement help wanted question
主要语言
C
星标
223
派生
38
平均合并
1 天 5 小时
30 天内合并 PR
6

描述

Most ACE utils/managers are having create/destroy functions, so this could be constructors. Also, some things that will be possible in C++ and aren't in C:

- blitter as a global object - setting regs via method chaining, also add some helper methods. Should be able to make blitter usage a lot easier while also allowing to strip some of current blitter fns bloat/limitations without making code too messy
- `constexpr` most of constructors
- templated stuff - abiltiy to have byte- or word-indexed tilebuffer without duplicating the codebase
- optimize stuff here and there with `std::move`
- better memory management - ability to have static allocation for most of things instead of current dynamic-only approach. Should allow compiler for more optimizations. Done with either constructing globals for static alloc or using `new`/smart pointers for dynamic alloc
- template most of helper fns so that they can be better optimized

Things to figure out:

- what C++ features to use and what to skip to prevent machine code and memory bloat or general slowdowns
- which compiler to officially support - Bartman's offers more recent C++ standard but has no STL/stdlib, Bebbo has those and optimizes better in some cases but doesn't support bleeding edge C++ and it's getting older with each day
- should the C++ be just a wrapper for C code or rewrite it in-place? Some people may want to use C flavor

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。