Hi,
So I'm working on TinyCC to make it somewhat usable in the modern era, here's the list of thing I did, all of them are huge changes.
1. Formatted the code to use 4-space-indent, K&R bracket style
-> This is very big, as it breaks all WIP PRs
2. No more global code, finishing what Bellard wished to do for a long time
-> All states are stuffed in TCCState with their corresponding name
-> Yes, it should be fully reentrant now
-> Yet also comes with a caveat to using more memory (~80k in sizeof now according to MSVC)
3. More C90 code
-> Anonymous struct/"struct { ... } foo;" as I separated the global states to namespaces
-> !! TinyCC might not be self-bootstrappable after this
4. Codegen virtualization (not started yet)
-> This is a great idea in mind, as we could finally cross-compile in one centralized binary, but the codegen currently copulates with a lot of cancerous implementation defined macros, so I need to fully separate the damning macros first.
Anaël Seghezzi also had worked on similar things I did (
https://github.com/anael-seghezzi/tcc-0.9.26), but he did it for his CToy environment anyway and the base version he dealt with is outdated, and I guess he never asked for the same PR I guess? My work is fully independent until I googled it in what I already did most so far.
Nevertheless, I always wanted reentrant code on mainstream TinyCC, perhaps the next version 0.9.27 could have it :)
Also, I want to advocate on moving TinyCC to GitHub, the owner should be the one still active here or I can take the place :P because
http://repo.or.cz/tinycc.git is not well indexed in Google and so people spammed different versions of TCC on top of that, it is not cool to see
http://repo.or.cz/tinycc.git in the middle of google search result while an old branch from LuaJIT is on the top.
But y'know, I could always fork TinyCC and separate the code from the mainstream. However, I hate to merge git commits (as I'm, unfortunately, a git-retard), so now I need all past contributors to vote for these changes: if you had time, just put a yay or nay on this thread, thanks.
Steve the student.