blob: 8d0904d1eab62460570517a25a25dfe372ac7260 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# To-Do List
This file tracks the next set of immediate, actionable tasks for the project.
## Next Up
- **Task #8: Implement Final Build Stripping**
- [ ] Define and document a consistent set of rules for code stripping under the `STRIP_ALL` macro.
- [ ] Example sub-tasks: remove unused functions, strip debug fields from structs, simplify code paths where possible.
- **Task #19: Update README.md with Quick Start**
- [ ] Add a top-level "Quick Start" section to `README.md` with brief build and run instructions for `demo64k`.
- ** Task #?: scripts/build_win.sh is always copying MinGW DLLs file ("Copy MinGW DLLs"). Add a check on date or file size to prevent useless systematic copy.
- ** Task #?: Code hygiene
- [ ] make a pass on the code and make sure all useless code is protected by STRIP_ALL #ifdef's
- [ ] analyze the #include and check if some standard header inclusion could be removed (<algorithm>, etc.)
- [ ] see if all usage of std structs, container, etc. are appropriate:
== is this std::map<> needed?
== could we remove this std::set<>?
== Can this std::vector<T> be replaced by a simple C-like "const T*" array?
== are these std::string needed or can they be replaced by some 'const char*' ?
== do we need these std::cout, std::cerr, etc. instead of printf()'s?
== etc.
- [ ] the inclusion of gpu.h (either "gpu.h" or <webgpu/gpu.h>) seems to be a recurring compilation and portability issue. Can we have a single inclusion of gpu.h in some platform header instead of scattered inclusion in .cc files? This would reduce the single-point-of-compilation failures during compilation and portability checks.
## Future Goals
- **Task #5: Implement Spectrogram Editor**
- [ ] Develop a web-based tool (`tools/editor`) for creating and editing `.spec` files visually.
- [ ] The tool should support generating `.spec` files from elementary shapes (lines, curves) for extreme compression.
- **Phase 2: Advanced Size Optimization**
- [ ] Replace GLFW with a minimal native Windows API layer.
- [ ] Investigate and implement advanced asset compression techniques (e.g., logarithmic frequency, quantization).
- [ ] Explore replacing the standard C/C++ runtime with a more lightweight alternative.
## Past Tasks
- Centralize generated files into `src/generated`.
- Vertically compact C++ source code.
- Create top-level `README.md`.
- Move non-essential documentation to `doc/`.
- **Task #4b:** Create `scripts/check_all.sh` to build and test all platform targets (macOS, Windows, Linux) to ensure stability before commits.
- **Task #10:** Modify `spectool` to trim leading and trailing silent frames from `.spec` files to reduce asset size.
|