I do finalize experimental version of CHDK with binary modules. Do not take attention to the "experimental" status - build works completely stable on my CanonS95 (builded by GCC4.5.1)
URL to SVN repository:
https://www.assembla.com/code/chdk-ex/subversion/nodesOr use patch file in attachment to get it from CHDK-1459
Version is based on trunk CHDK-rev1459.
Loader take ~2.5Kb. Result binary is smaller by ~26Kb in compare to trunk version with default settings (and now no limit to complexity and num of modules

)
Binary modules are based on modified BinaryFLAT format (thanks for information about this format to reylap).
It was difficult to make and stabilize infrastructure, but easy to use it. I get tetris from DE and snake from forum attachment today and convert them to modules in 10min. (surely zero impact on core size)
Separated to modules:
- games (sokoban.flt, mastmind.flt, 4wins.flt, reversi.flt)
- utilities (fselect.flt, txtread.flt, calend.flt)
- processing(curves.flt,edgeovr.flt, _rawopX.flt)
- debugs( memview.flt, benchm.flt)
- rare utility modes (palette.flt, mpopup.flt)
All of them are platform-independent. I see no problem to separate Lua and basic to modules. I just not spend time to this because this require additional changes to isolate them.
Additional modules:
modinsp.flt - module inspector
snake.flt - Game from forum. Run directly from browser only (not integrated to menu)
tetris.flt - Last modification by Sektor of DE game. Run directly from file browser only (not integrated to menu)
What help needed:
- test stability of binary generated by autobuild GCC version. (GCC strangely generate incomplete files in case turned on relocs. because this many modules /for example benchmark/ was unstable. I add some hacks during elf conversion, but not sure that this works ok with all GCC)
- test how it build on linux
- test curves module (It require camera with 10pixel depth sensor)
- test stability/perfomance on different cameras. especially on old cameras
I'm open to questions, discussion, proposal, integration into main trunk.