#TinyCC

2024-01-01

Гений 21 века. Чем сейчас занимается Фабрис Беллар

Некоторые программисты настолько хорошо известны, что не нуждаются в особом представлении. Наверное, Фабрис Беллар — самая яркая звезда современности. Автор мультимедийного комбайна FFmpeg, эмулятора QEMU и десятков других полезных программ — абсолютный гений и пример программиста 100х, который в одиночку принёс больше пользы миру, чем многие корпорации с сотнями разработчиков. В общем, все знают Фабриса — про него ещё была статья на Хабре двенадцать лет назад… … Но по просьбам молодых читателей мы решили вернуться к этой теме. Оно и к лучшему, ведь Фабрис многое сделал за это десятилетие, особенно в области нейросетей.

habr.com/ru/companies/ruvds/ar

#ruvds_статьи #Фабрис_Беллар #Better_Portable_Graphics #BPG #LZEXE #Harissa #число_Пи #Linmodem #FFmpeg #TCC #TinyCC #TinyGL #QEmacs #QEMU #формула_Беллара #QuickJS

Kevin Karhan :verified:kkarhan@mstdn.social
2023-12-11

@landley @nixCraft @OS1337 I really should use #tinycc instead of #gcc...

Andrius Štikonasstikonas@fosstodon.org
2023-10-13

@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.

@janneke
@efraim
#bootstrappableBuilds
#reproducibleBuilds

Andrius Štikonasstikonas@fosstodon.org
2023-10-01

@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.

#bootstrappableBuilds

Andrius Štikonasstikonas@fosstodon.org
2023-08-24

@monk Why is it from #TinyCC. We have successfully bootstrapped kernel and userspace on x86 from far smaller binaries. E.g. builder-hex0 is about 200 bytes of code.

Andrius Štikonasstikonas@fosstodon.org
2023-07-03

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.

#bootstrappable
#BootstrappableBuilds
#ReproducibleBuilds

2023-05-28

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!

en.wikipedia.org/wiki/Tiny_C_C

Arne BabenhauserheideArneBab@rollenspiel.social
2023-04-01

@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

2022-09-11

I deeply admire and envy Fabrice Bellard, creator of #FFmpeg, #QEMU, #TinyCC, and countless other impactful projects.

smartbear.com/blog/fabrice-bel

2021-04-09

@timorl

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: gcc.gnu.org/pipermail/gcc/2021

Indeed they are discussing to leave #GNU in these days.

Now I'm exploring the alternatives.

So far, #TinyCC looks promising: bellard.org/tcc/

Other alternatives are listed here 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" gcc.gnu.org/pipermail/gcc/2021

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.

2021-04-08

You know @ekaitz_zarraga?

I'm trying #TinyCC! 😉

I gave a look to all the compilers at 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:
gcc.gnu.org/pipermail/gcc/2021

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?

2017-08-17
@tekk

>> I tried using the latest http://repo.or.cz/tinycc.git to build gcc 4.7.0 (one of the latest C versions before it was rewritten in C++)

> Thank you so much for your help, I was able to build gcc using tcc now! Simply amazing!

https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html

/via https://lists.gnu.org/archive/html/guile-user/2017-07/msg00089.html

/via https://octodon.social/users/cwebber/updates/168900

#tinycc #tcc #mes #mescc

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst