godot icon indicating copy to clipboard operation
godot copied to clipboard

[TRACKER] C++ modules related issues

Open Xrayez opened this issue 5 years ago • 6 comments

Godot version: 3.2, 4.0

Issue description: There are some existing issues related to module dependencies which may cause run-time and compile-time errors, or need better user-friendly interface to ensure that certain modules cannot be disabled, or whether the usage of modules may reveal hidden built-in bugs (which can be either workaround on the module level or fixed on the core level, so these are not necessarily the responsibility of module authors, but which nonetheless worth to link).

Bugs

  • [x] #36091
  • [x] #32217
  • [x] #32216
  • [x] #39186
  • [x] #38759
  • [ ] #37301
  • [ ] #37234
  • [x] #36582
  • [ ] #35788
  • [x] #35740
  • [ ] #33659
  • [x] #33641
  • [x] #33336
  • [x] #33279
  • [ ] #32265
  • [ ] #31123
  • [x] #30333
  • [x] #30629
  • [x] #28949
  • [x] #28650
  • [ ] #25448
  • [x] #13272
  • [x] #39219
  • [x] #41710
  • [x] #45462
  • [x] #45342
  • [x] #44536
  • [x] #50462

Documentation

  • [ ] #15675
  • [ ] #11766
  • [ ] #9949

Proposals

Some issues remain in Limbo due to indecision regarding the philosophical principles of module development (what's deemed as a module now should be core, for instance see attempted fixes #32272), so it may not worth fixing some of the bugs at the moment (raising awareness for contributors).

  • Godot's C++ modules should be self-contained godotengine/godot-proposals#569.

List of modules which cannot be disabled without...

... compile-time errors

with target=debug tools=yes:
  • regex: rename dialog: https://github.com/godotengine/godot/pull/31290#issuecomment-520227369)
  • freetype: font rendering
  • svg: editor icons scaling
  • gdscript #41710 (3.2)
with platform=windows tools=yes bits=32:
  • ~~denoise: #39186, #38759.~~

... run-time errors

with target=debug tools=yes:
  • gdnavigation: #36091
  • bullet: #32217, #32216
  • mbedtls: asset library (requires SSL), crash on project startup.
  • glslang: shader compilation (?) numerous errors spam on startup.

Xrayez avatar May 31 '20 15:05 Xrayez

I would add #38759.

madmiraal avatar Jun 01 '20 09:06 madmiraal

Created a script to generate a random modules configuration to "fuzzy test" compiling Godot that way, if you want to burn your CPU cycles. 🙂

Xrayez avatar Jun 01 '20 11:06 Xrayez

#28949 closed.

Anutrix avatar Aug 03 '20 07:08 Anutrix

@Xrayez modules may should be designed with dynamic loading, modules should be attached with dependency infos. Modules can be loaded or unloaded at runtime?More complicated but better to extend godot by user.

jxo avatar Nov 24 '20 00:11 jxo

@jxo what you describe is more or less handled by GDNative. But there are certainly usability/portability/compatibility issues with using it. For this, you can refer to proposals regarding GDNative.

You can also refer to godotengine/godot-proposals#565 for comparison between modules and GDNative approaches, and how they solve different use cases.

Xrayez avatar Nov 24 '20 12:11 Xrayez

@JXO See also What is GDNative? in the documentation.

Calinou avatar Nov 24 '20 14:11 Calinou