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 :)

Another reason I did this is for experiments with the MJIT library from
Vladimir Makarov for Ruby (
https://github.com/vnmakarov/ruby/tree/rtl_mjit_branch#mjit-organization),
it uses C code as an intermediate representation, very interesting idea and
I believe MJIT and TinyCC can make a match in the heaven.

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.
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to