more todos, typo fix
parent
000a5b27dc
commit
cc1522760f
|
|
@ -77,7 +77,7 @@ And in a true C Scripting system, there are two more requirements. One it should
|
|||
}
|
||||
```
|
||||
|
||||
There's no way to achieve this in standard C. However with one non-standard trick we can get there in a fairly satisfying way. And I've tested out `clang` and `cl` for compilers, `clang` and `link` for linkers, and various combinations of optimizations and link time optimizations, and found that this non-standard trick continues to behave as expected across the board. I have yet to test this out on a Linux or Mac machine, or on an a machine with an architecture other than an ARM64, so the research on this technique isn't *finished* but it's looking *very good*.
|
||||
There's no way to achieve this in standard C. However with one non-standard trick we can get there in a fairly satisfying way. And I've tested out `clang` and `cl` for compilers, `clang` and `link` for linkers, and various combinations of optimizations and link time optimizations, and found that this non-standard trick continues to behave as expected across the board. I have yet to test this out on a Linux or Mac machine, or on an a machine with an architecture other than an AMD64, so the research on this technique isn't *finished* but it's looking *very good*.
|
||||
|
||||
**Data Sections**
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
@echo off
|
||||
|
||||
set opts=-FC -GR- -EHa- -nologo -Zi
|
||||
set opts=-FC -GR- -EHa- -nologo -Zi -std:c11 -wd5105
|
||||
set code=%cd%
|
||||
pushd build
|
||||
cl %opts% %code%\src\example1.c -Feexample1 -link -INCREMENTAL:NO
|
||||
|
|
|
|||
|
|
@ -37,7 +37,8 @@
|
|||
|
||||
// user interface
|
||||
|
||||
#define SymbolDeclare(E,N) SECTION(E##_section) extern SYMBOL__TYPE(E) SYMBOL__SYM(E,N)
|
||||
#define SymbolDeclare(E,N) \
|
||||
SECTION(E##_section) extern SYMBOL__TYPE(E) SYMBOL__SYM(E,N)
|
||||
|
||||
#define SymbolDefine(E,N) DO_NOT_ELIMINATE(SYMBOL__SYM(E,N)) SymbolDeclare(E,N)
|
||||
#define SymbolDefineNameless(E) SymbolDefine(E,GLUE(auto,__COUNTER__))
|
||||
|
|
|
|||
14
todo.txt
14
todo.txt
|
|
@ -8,10 +8,13 @@ Example Writing:
|
|||
- Metaprogramming without needing input
|
||||
|
||||
|
||||
Practical Use Tips:
|
||||
Research and Provide Practical Use Tips:
|
||||
|
||||
[ ] See the symbol set in the debugger
|
||||
[ ] Best ideas for solving serialization systems problem
|
||||
[ ] Shader management
|
||||
[ ] IDs for profiler blocks
|
||||
[ ] How does this hold up when multiple DLLs or SOs are involved?
|
||||
|
||||
|
||||
Vetting:
|
||||
|
|
@ -46,7 +49,7 @@ Development:
|
|||
[ ] Macho
|
||||
|
||||
|
||||
Structure Research:
|
||||
"Mark II":
|
||||
|
||||
[ ] Object file editing for improved memory layout & symbol id references
|
||||
[ ] Setup count and base pointer symbols
|
||||
|
|
@ -56,12 +59,11 @@ Structure Research:
|
|||
|
||||
[ ] Do I want to maintain a pair of versions one with object file editing
|
||||
and one without?
|
||||
[ ] Explore the tradeoff of using the hook for more complex data initialization
|
||||
[ ] OpenGL Shaders?
|
||||
|
||||
Other Upgrade Research:
|
||||
|
||||
[ ] Could Symbol Sets syntax be organized in such a way that it's just a data
|
||||
section and type wrapped in a macro?
|
||||
[ ] How does this hold up when multiple DLLs or SOs are involved?
|
||||
[ ] Try using this to generate the IDs for profiler blocks?
|
||||
|
||||
|
||||
Support Tools:
|
||||
|
|
|
|||
Loading…
Reference in New Issue