Приветствуем, Гость! Регистрация

Cosmopolitan - стандартная библиотека для C, с преимуществами высокоуровневых языков
#1
Cosmopolitan делает из C язык, который "собери один раз - запускай везде", почти как Java, за исключением того что приложения не требуют интерпретаторы или предустановленные виртуальные машины. Cosmo даёт преимущества высокоуровневых языков, таких как Go и Rust, но не изобретает новый язык, и вам не нужно настраивать CI для сборки отдельных бинарников для каждой операционной системы. На чём Cosmopolitan фокусируется - на исправлении C путём отсоединения его от платформ, чтобы на нём было приятно писать небольшие unix-программы, которые легко распространяются на гораздо широкую аудиторию.
 
Пример:
 
Код:
# создайте простую программу на C в командной строке
printf %s '
  main() {
    printf("hello world\n");
  }
' >hello.c

# запустите компилятор gcc в автономном режиме
gcc -g -Os -static -fno-pie -no-pie -nostdlib -nostdinc \
  -fno-omit-frame-pointer -pg -mnop-mcount \
  -o hello.com.dbg hello.c -Wl,--gc-sections -fuse-ld=bfd \
  -Wl,-T,ape.lds -include cosmopolitan.h crt.o ape.o cosmopolitan.a
objcopy -S -O binary hello.com.dbg hello.com

# ПРИМЕЧАНИЕ: сделайте scp для бинарника на windows/mac/т.п. *до* запуска!
# ~40kb static binary (can be ~16kb w/ MODE=tiny)
./hello.com
 
Команда выше чинит GCC, и он выдаёт переносимые бинарники, которые запускаются на любом дистрибутиве Linux, в дополнении к Mac OS X, Windows NT, FreeBSD, OpenBSD и NetBSD. 

https://justine.lol/cosmopolitan/
It's time to kick gum and chew ass. And i'm all out of ass.
Ответ
#2
Вся магия в статическом вкомпиливании их либы в проект. В целом, конечно, не плохо, но жаль, что применение ограниченное. Например, использование сторонних библиотек сразу ставит крест на начинании. А чтобы держать в себе всё - ну не знаю, посмотрим. Так то концепция мне нравится.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)