# Roman C Compiler v2
Скоро будет компилятором Си, а пока что наслаждайтесь GovnoCode Edition.
Лицензия: GPLv3
## Как юзать?
1. Компилим компилятор
```bash
gcc main.c -o rcc2
```
2. Пишем код
```c
U0 main() {
    puts("Hello world!");
}
```
3. Компилим код
```bash
./rcc2 shedevrocod.c > shedevrocod.asm
```
4. Ассембля
```bash
kasm shedevrocod.asm shedevrocod.asm
```
5. Запуск
```bash
gc24 shedevrocod.asm
```
## FAQ
## А где 1 версия?
Она была на Python и использовала классы. Поэтому её развивать не буду.
## Какие отличия от GovnPy?
1. Вместо GC16X выводит код для GC24
2. Написан на Си, поэтому ultra fast(tm).
3. Использует синтаксис Си, что позволяет добавлять фишки по типу struct/enum. Ну и self-hosting тоже :D
4. Будет type-checking
5. Вне версий "GovnoCode Edition", будет лучше оптимизировать код.
## Почему "GovnoCode Edition"?
Потому что на этом этапе код генерируется на лету, что очень ограничивает возможности.
Ну и есть много мелких приколов, которые будут исправлены. Например, токенизатор будет использовать таблицы функций, а не if. А ещё нет функции -o, поэтому сохранять вывод в asm-файл
## x86-128 support when?
Скоро(TM)
А если серъезно, компилятор, после рефакторинга, будет поддерживать несколько процессоров. Прям как LLVM.
## Где поддержка JavaScript/TypeScript, NixOS, когда реврайт на C++/Rust?
Всё это добро можно сделать 1 командой:
```bash
sudo halt --halt --force
```


## Верни GML!
~~GML умер, за Gemtext будущее~~
GML1 (который в GovnWeb 1.x) на самом деле был скорее форматом векторных изображений, нежели форматом текста. Перенос строк выполнялся на этапе "компилирования" документа.
## Почему (TM) вместо знака?
Потому что стандартные библиотеки GovnPy2 из юникод символов поддерживают только русские.
## Когда GC24.efi?
Когда RCC2 будет пригоден для написания BIOS-а. Zig-а больше не будет.
## Почему puts не умещается в 1 строку?
Не знаю, таков kasm. В rasm2 таких проблем нет
