Tiny C Compiler is relicensing to MIT
https://repo.or.cz/tinycc.git/blob/3d963aebcd533da278f086a3e559d24b961e8c31:/RELICENSING
Interesting Changes
Tiny C Compiler is relicensing to MIT
https://repo.or.cz/tinycc.git/blob/3d963aebcd533da278f086a3e559d24b961e8c31:/RELICENSING
Interesting Changes
Гений 21 века. Чем сейчас занимается Фабрис Беллар
Некоторые программисты настолько хорошо известны, что не нуждаются в особом представлении. Наверное, Фабрис Беллар — самая яркая звезда современности. Автор мультимедийного комбайна FFmpeg, эмулятора QEMU и десятков других полезных программ — абсолютный гений и пример программиста 100х, который в одиночку принёс больше пользы миру, чем многие корпорации с сотнями разработчиков. В общем, все знают Фабриса — про него ещё была статья на Хабре двенадцать лет назад… … Но по просьбам молодых читателей мы решили вернуться к этой теме. Оно и к лучшему, ведь Фабрис многое сделал за это десятилетие, особенно в области нейросетей.
https://habr.com/ru/companies/ruvds/articles/781922/
#ruvds_статьи #Фабрис_Беллар #Better_Portable_Graphics #BPG #LZEXE #Harissa #число_Пи #Linmodem #FFmpeg #TCC #TinyCC #TinyGL #QEmacs #QEMU #формула_Беллара #QuickJS
@ekaitz_zarraga and I have finally bootstrapped #TinyCC on #RISCV starting from GNU #Mes and #MesCC (and eventually tiny #hex0 binary if you go further back).
The binary that we have built is self-hosting and can build itself, though perhaps a few more bugfixes will be needed to reach the newest version of tcc.
#RISCV support in #Mes’s bootstrappable #TinyCC
https://ekaitz.elenq.tech/bootstrapGcc6.html
#bootstrappablebuilds
@janneke @aziz @fsf @fsfe @reproducible_builds @ekaitz_zarraga Indeed! Right now we can bootstrap all the way from #hex0 to #Mes, then use #MesCC to build very first build of #tinycc (we can call it mes-tcc). mes-tcc can then build the next build of tinycc (boot0-tcc). Unfortunately, at the moment boot0-tcc segfaults. Today, I fixed one crash which was due to Global Offset Table being all zeros but it turns out we are now hitting another segfault, so more work is needed.
Spent part of my #RechageDay at #AMD looking at bootstrapping #TinyCC 0.9.26 from #GNUMes on #x86_64 architecture. And thanks to #Mes mantainer @janneke for his help with debugging various issues. We can now build initial #tcc binary and it can even run some simple commands such as --help or -vv.
Unfortunately, we still hit some critical bugs when trying to use this tcc binary to rebuild itself but hopefully we are not far now.
The only thing needed to compile a #CMake project with #TinyCC is:
`set(CMAKE_C_COMPILER tcc)`
when the TCC executable is in the path.
It might not be the best #C compiler, but it can act as a static library to offer compiler services to a client program.
And that feature is really great and otherwise known only in bloated frameworks.
TinyC did teach me how space efficient compilers can be.
Amazing!
@lispi314 sidenote: that #guile bootstrap path was developed for #guix :
GNU Mes (maxwell equations of software) provides a minimal #scheme interpreter and C #compiler with tooling to build #tinycc that can be used with the Mes C library to compile glibc-2.2.5, binutils-2.20.1, gcc-2.95.3 with which you can build the whole #GNU system.
Thanks to #GCCrs that will soon include #Rust
Thanks to #Python on Guile it includes a shortcut for compatible Python-based tooling.
#GCC
@dalias @jschauma
I deeply admire and envy Fabrice Bellard, creator of #FFmpeg, #QEMU, #TinyCC, and countless other impactful projects.
https://smartbear.com/blog/fabrice-bellard-portrait-of-a-super-productive-pro/
I used to trust #GCC.
I spent a huge amount of my free time over the last 2 years to port it to my operating system (a Plan 9 fork).
In fact, Jehanne has been the first Plan 9 fork to run a modern GCC (9.2.0) and compile C++ programs correctly.
Then, with the removal of #RMS by the GCC Steering Committee, I realized they cannot be trusted: https://gcc.gnu.org/pipermail/gcc/2021-April/235285.html
Indeed they are discussing to leave #GNU in these days.
Now I'm exploring the alternatives.
So far, #TinyCC looks promising: https://bellard.org/tcc/
Other alternatives are listed here http://suckless.org/rocks/ but some requires either linker or assembler.
And while I obviously ported GNU binutils too, I prefer to avoid this toolchain since they are all showing they do not give a shit about free software, but about "#IBM, #Google, #Facebook, #ARM, or other big supporters" https://gcc.gnu.org/pipermail/gcc/2021-April/235367.html
A serious alternative could be the 9front compiler suite that I dismissed years ago because I was still naive (dumb).
Also, it's urgent to design better programming languages, and for "better" I mean simpler both for humans and for compilers/interpreters. So that all people will be able to read the software they use.
But the point remains: if it cannot be completely read and understood in at most a month by a single professional programmer, it's broken beyond repair and need to be replaced.
You know @ekaitz_zarraga?
I'm trying #TinyCC! 😉
I gave a look to all the compilers at http://suckless.org/rocks/ but apparently #tcc is the most mature and the only one completelly self-sufficient.
BUT.
I do not know.
What it I restart from #9front?
No ELF. No #POSIX. No... shit.
It took a huge amount of work to do all this in #Jehanne but... why going after so much complexity? Why not just restart from scratch?
Give a look at this:
https://gcc.gnu.org/pipermail/gcc/2021-April/235367.html
Relying on #GNU (and on US-based software) is becoming a huge hazard.
Or more precisely, it's just proving to be such hazard and we were to naive to realize before.
We need to rebuild everything from scratch, anything that cannot be completely rebuilt in a month must be rewitten.
So what's the point of compatibility?