Pull to refresh
71
0
Глухов Михаил @Rigidus

Solution Architect | Senior Developer

Send message

"Будет приятно узнать, что любая обычная программа для ПК, которую мы напишем, будет «просто работать» на Raspberry Pi и Apple ARM."

Cosmopolitan превращает Cи в язык для однократной сборки и запуска в любом месте, аналогичный языку Java, за исключением того, что он не требует интерпретаторов или виртуальных машин, установленых заранее. Он обеспечивает те же преимущества портативности, что и языки высокого уровня, такие как Go и Rust, но не изобретая нового языка, и вам не нужно будет настраивать CI/CD для создания отдельных бинарников для каждой операционной системы.

Cosmopolitan нацелен на исправление C, отделив его от платформ (один бинарник для Windows и Linux - это ли не достижение?), чтобы его было приятно использовать для написания небольших unix-программ, которые легко распространяются среди широкой аудитории.

Ваша программа также будет загружаться на «голом железе». Другими словами, вы написали обычную программу из учебника на C, и благодаря волшебству низкоуровневого компоновщика Cosmopolitan, вы фактически создали свою собственную операционную систему, которая также работает на всех существующих.

Это то, что никто не делал раньше.

По мне так в этом очень много духа старой школы, духа UNIX. Нужно иметь некоторый уровень гениальности чтобы придумать это, а для использования достаточно просто подключить нужные библиотеки.

gcc -g -Os -static -fno-pie -no-pie -nostdlib -nostdinc -gdwarf-4 \
  -fno-omit-frame-pointer -pg -mnop-mcount -mno-tls-direct-seg-refs \
  -o hello.com.dbg hello.c -Wl,--gc-sections -fuse-ld=bfd -Wl,--gc-sections \
  -Wl,-T,ape.lds -include cosmopolitan.h crt.o ape-no-modify-self.o cosmopolitan.a
objcopy -S -O binary hello.com.dbg hello.com


Тот кто это придумал - настоящий хакер, в старом значении этого слова

Еще нагуглилось Programming Languages: Application and Interpretation ( PLAI )

Очень хорошо написанное руководство, можно смело рекомендовать не только новичкам но и в качестве справочника. Но я не смог скомпилировать его в формат dvi, дает вот такой вывод:

Hidden text
make c.dvi
tex c.texi
This is TeX, Version 3.14159265 (TeX Live 2019/Debian) (preloaded format=tex)
(./c.texi (./texinfo.tex Loading texinfo [version 2018-01-09.11]: pdf, fonts,
markup, glyphs, page headings, tables, conditionals, indexing, sectioning,
toc, environments,
kpathsea: Running mktextfm lcircle10
/usr/share/texlive/texmf-dist/web2c/mktexnam: Could not map source abbreviation  for lcircle10.
/usr/share/texlive/texmf-dist/web2c/mktexnam: Need to update ?
mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input lcircle10
This is METAFONT, Version 2.7182818 (TeX Live 2019/Debian) (preloaded base=mf)


kpathsea: Running mktexmf lcircle10
! I can't find file `lcircle10'.
<*> ...jfour; mag:=1; nonstopmode; input lcircle10

Please type another input file name
! Emergency stop.
<*> ...jfour; mag:=1; nonstopmode; input lcircle10

Transcript written on mfput.log.
grep: lcircle10.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input lcircle10' failed to make lcircle10.tfm.
kpathsea: Appending font creation commands to missfont.log.

! Font \circle=lcircle10 not loadable: Metric (TFM) file not found.
<to be read again>
                   \global
\alloc@ #1#2#3#4#5->\global
                            \advance \count 1#1by\@ne \ch@ck #1#4#2\allocati...
l.7208 \newdimen\circthick

?

ранее я не сталкивался с этим форматом, а он нужен для получения pdf, который было бы интереснее читать в дороге чем html-версию. Что я должен делать чтобы подступиться к проблеме?

Надо добавить к этому что-то что можно читать "после SICP". HTDP или Reasoned Schemer, хотелось бы еще больше примеров подобных книг

Это же хабр, в статью должен быть включен хотя бы минимальный туториал по созданию дипфейка :)

Спокойно :) Человек старается, делает собственную работу, вместо того, чтобы захламлять хабр гуглопереводами чужого контента. Я, к слову, свои старые статьи даже открывать боюсь, такой там кринж. Дайте ему время - и все придет, и русский язык и глубокие исследования.

Это как раз самое важное. Без этих деталей история выглядит набором случайных фактов и новостей, а не ациклическим причинно-следственным графом

Это может не так работать. Квалифицированные медицинские специалисты - результат отсева в наборе всех мед. специалистов. Если телемедицина уменьшает необходимость количестве мед.специалистов - у нас уменьшается весь набор и мы теряем квалификацию верхушки этой пирамиды

Это был предлог, а отменить его хотели за совершенствование свободных лицензий и сопротивление закрытию свободного ПО

"В Sun не рискнули сразу копировать все из Oberon (идеи браузерной среды языка, аплетов и трансляции в мобильный код взяли, а вот путь реализации мобильного кода выбрали свой). В 1991 г. автор Java Джеймс Гослинг при реализации Oak (прототипа языка Java) взял старую идею P-кода, которую хорошо знал: в 1975 г. Гослинг вместе с Недом Китлицем и Бобом Сайдботемом участвовал в построении среды программирования Pyxis/Multics Pascal, способной по быстродействию кода и удобству интеграции на равных конкурировать в Multics c родным для этой ОС языком ПЛ/1. А начинали они с поддержки компилятора ETH/Zurich Pascal, разработанного в Цюрихе группой профессора Вирта. В 1979 г. Гослинг реализовал PERQ — транслятор с P-кода в машинный код DEC VAX"

Хотелось бы знать, куда они уходят - я бы там почитал..

Достаточно будет ситуации когда нормального специалиста будет сложно (дорого) отличить от выпускника трехмесячных курсов. В этом случае работодатель будет платить "по-среднему" просто чтобы минимизировать ущерб в случае своей ошибки. А "средних" будет много. После этого спрос на хороших программистов будет неудовлетворен, но это не будет иметь значения, потому что вайтишников будет много, а отличить первых от вторых - дорого. И в результате зарплаты могут упасть

Я знаю вещи и похуже - оператор COME FROM

Полезная идея для криптопротекторов однако..

Это есть как фича языка в Common Lisp и называется протоколом condition/restarts. Более того, вы можете предоставить несколько возможных "перезапусков", которые могут быть "применены" к возникшей ошибке пользователем или вызывающим кодом. Одним из этих "перезапусков" может быть "игнорировать" или "изменить на правильное значение и перезапустить сломавшуюся операцию". Работает лучше чем глобальный и опасный On Error Resume Next

после запуска некоторое время вижу черное окно, и все, потом оно закрывается

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity