juan_gandhi: (Default)
[personal profile] juan_gandhi

Мы долгое время смотрели на Пелевина как на предсказателя российского будущего. Чего там Пелевин понавыдумывает в книжках, то потом в реале.

А теперь чо? А теперь, бля, настала эпоха Сорокина! Я его лет 20-25 назад перестал читать, просто потому что спать потом не могу. А теперь оказывается, что это российская реальность. Кстати, и 7 октября - это тоже Сорокин.

Куда мы движемся, куда?! Как мы докатились, боже мой...

vcc компилирует себя

Oct. 7th, 2026 01:11 am
vak: (Бодхидхарма)
[personal profile] vak
Компилятор vcc теперь на Линуксе и маке по умолчанию создаёт родные бинарники. Например:
$ vcc hello.c 
$ ./a.out
Hello, World!
Заглянем "под капот", какие проходы при этом выполняются.
$ vcc -v hello.c 
/home/vak/.local/bin/vcpp -t x86_64-linux -nostdinc -I/home/vak/.local/share/vcc/x86_64-linux/include hello.c /home/vak/.tmp/vccKpzN1K.i 
/home/vak/.local/bin/vparse /home/vak/.tmp/vccKpzN1K.i /home/vak/.tmp/vccmb65nv.ast 
/home/vak/.local/bin/vlower -t x86_64-linux /home/vak/.tmp/vccmb65nv.ast /home/vak/.tmp/vccuuoSdo.tac 
/home/vak/.local/bin/vgenx86 --linux /home/vak/.tmp/vccuuoSdo.tac /home/vak/.tmp/vccb2Q3rw.s 
/usr/bin/gcc -c -o /home/vak/.tmp/vcclcl2h5.o /home/vak/.tmp/vccb2Q3rw.s 
/usr/bin/gcc -no-pie -o a.out /home/vak/.tmp/vcclcl2h5.o -L/home/vak/.local/share/vcc/x86_64-linux/lib -lvcc 
Сначала препроцессор, получаем файл *.i. Затем парсер преобразует его в *.ast. После этого собственно компилятор перемалывает программу в *.tac. Дальше кодогенератор порождает код на ассемблере *.s. Потом стандартные ассемблер и линкер, через gcc. Компилятор успешно компилирует сам себя. При этом размер бинарников x86 выходит даже меньше, чем через gcc. Вот, к примеру:
$ size lower parse self/lower self/parse 
   text	   data	    bss	    dec	    hex	filename
 409812	   5456	    280	 415548	  6573c	lower
 181580	   2712	   3312	 187604	  2dcd4	parse
 339664	   6369	    280	 346313	  548c9	self/lower
 151594	   2673	   3232	 157499	  2673b	self/parse
На Линуксе arm64 ситуация не настолько удачная. Есть ещё где потрудиться над оптимизацией:
$ size lower parse self/lower self/parse 
   text	   data	    bss	    dec	    hex	filename
 348687	   5552	    192	 354431	  5687f	lower
 178356	   2880	   3208	 184444	  2d07c	parse
 413957	   6409	    240	 420606	  66afe	self/lower
 179543	   2713	   3208	 185464	  2d478	self/parse

сяу

Oct. 7th, 2026 07:52 am
juan_gandhi: (Default)
[personal profile] juan_gandhi

Французское слово "saucissonner" - практически "наколбасить". 

Жена научила.

Компилируем для MMIX

Oct. 6th, 2026 02:57 pm
vak: (Daemon)
[personal profile] vak
Я когда-то рассказывал про MMIX - компьютерную архитектуру, изобретённую лично Дональдом Кнутом. Все классические алгоритмы в своём бессмертном многотомнике он программирует на ассемблере этой машины. Народ для неё уже массу софта сварганил, вплоть до Линукса.

Мой компилятор был бы неполным без бэкенда для MMIX. Скомпилируем и запустим стандартный пример.
$ vcc -t mmix hello.c -o hello
$ mmix hello
Hello, World!
[exit 0]
Глянем на ассемблерный код.
$ vcc -t mmix -S hello.c
$ cat hello.s
...
main:
get $0, rJ
geta $2, _str0
pushj $1, printf
setl $1, #0
put rJ, $0
set $0, $1
pop 1, 0
Не могу сказать, что система команд MMIX сильно понятная. Сравнить с другими архитектурами можно здесь: 1595864.html.
denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)
[staff profile] denise posting in [site community profile] dw_maintenance

It's only been... okay, I don't want to think how long.

We are preparing to take the beta update page and the beta inbox out of beta with the next code release. We don't have an exact date yet, but this is your last chance to tell us about problems!

To enable the beta versions: go to Beta Features and enable the "new Create Entries" beta test for the new update page and the "New Inbox Page" for the, well, new inbox page.

If this is your first time using the beta update page: nearly everything on it can be adjusted, moved, or removed to some degree. The upper right side of the update form has a " ⚙️ Rearrange Panels" link.

Not every panel is enabled by default! If you don't see something you're used to finding, look in the disabled panels. While in Rearrange mode, you can enable or disable panels, drag them to whatever position you want, and generally customize it to your heart's content.

Once we push the button and switch to the new update and inbox pages for everyone, we cannot keep the old ones available. We are so close to finishing the decade-long "get rid of the undocumented custom templating language from 1996 that no one else uses" modernization project that's been sapping our collective will to live that we can taste it, and we can't convert the old update page and the updated inbox page is the converted version. This is your last chance to alert us of problems. If you let us know after the switch goes live, we'll still fix it, but we can't guarantee how fast. Prevent future problems and test drive them now!

vak: (Daemon)
[personal profile] vak
За выходные кавалерийским наскоком я залудил в Си компиляторе кодогенераторы для семи архитектур: Ну и 48-битная бэсм6 никуда не делась. Задача была убедиться, что технология разработки самого компилятора достаточно универсальна и покрывает весь спектр потребностей. Покажу как выглядит код.

Intel x86_64:
$ vcc -t x86_64 -S hello.c
$ cat hello.s
...
main:
subq $8, %rsp
leaq _str0(%rip), %rdi
xorl %eax, %eax
call printf
xorl %eax, %eax
addq $8, %rsp
ret
( +6 )

Симулятор MSP430

Oct. 4th, 2026 09:11 pm
vak: (Бодхидхарма)
[personal profile] vak
Для отладки Си компилятора под MSP430 нужен симулятор. Чтобы запускать бинарник и видеть выдачу, в том числе и с трассировкой. Я поискал, нашёл несколько проектов:
В результате взял исходники от Rudolf Geosits и переиначил как надо. Добавил недостающие команды (dadd), вычистил баги (jmp), добавил трассировку. Встроенный интерактивный отладчик оставил, хотя мне он без надобности.

Исходники здесь: sergev/mspsim
  • Всё написано на Си.
  • Вызывается из командной строки.
  • Может непосредственно выполнять бинарники, собранные стандартным msp430-gcc.
  • Умеет трассировку.

Кто не в курсе, напомню: msp430 это та же система команд, что и pdp11, но для современных микроконтролеров. Описание системы команд: MSP430_Instruction_Set.md.

Работает оно так:
$ msp430-elf-gcc -mcpu=msp430 -msim hello.c -o hello
$ mspsim hello
Loaded hello: 5918 bytes, 205 symbols, start at 0x052e
Hello, world!

[Exit code 0 after 3978 cycles]
vak: (Знайка)
[personal profile] vak
Если вы работаете с микроконтроллерами TI MSP430, эта инструкция может вам пригодиться. Как собрать компилятор Си с текстов на маке.

Howto_build_MSP430_GCC

EDG C/C++

Oct. 3rd, 2026 02:06 pm
vak: (Daemon)
[personal profile] vak
Компания Edison Design Group открыла исходные тексты своего Си++ фронтэнда.

github.com/edgcpp/compiler

Стоит ли пытаться пристегнуть этот парсер к бэкенду vcc? Уж очень он громадный на первый взгляд.
vak: (бэсм-6)
[personal profile] vak
Лёня [personal profile] spamsink пробрался на СВС в так называемый блок печати грифа секретности. Буковки на графопостроителе красивые.



Code pushed -- FYI

Oct. 3rd, 2026 10:20 am
mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)
[staff profile] mark posting in [site community profile] dw_maintenance

Hi all,

I had to push some code live today to fix something, and that brought with it a couple of new things like if you have two-factor authentication (2FA/MFA) enabled, you got automatically logged out and it is now required to log in. If you don't, you can set it up if you want (you don't have to.)

This also means that if you have 2FA enabled, you will not be able to use 3P clients using your username and password anymore. You should be able to use API keys in most cases, but there's some nuance to that (and tbh, I just am not precisely sure what clients anybody even uses.)

Please do comment if you're seeing anything weird, as per usual, and we'll work on it. Thank you!

насчёт моих постов

Oct. 3rd, 2026 06:55 pm
juan_gandhi: (Default)
[personal profile] juan_gandhi
Мои дыбры здесь пишутся под замок. Если вы откуда-то пришли, и хотите подписаться, то подпишитесь, я вам дам доступ. Ну или напишите мне, если у вас журнал пустой, и поди догадайся. Некоторое количетсо людей у меня забанено - это по большей части или сумасшедшие, или зетные ватники, или меня забанили (а тогда чо?), или по конкретно личным причинам. 

vcc

Oct. 2nd, 2026 02:37 pm
vak: (Бодхидхарма)
[personal profile] vak
Я начал новый проект, Versatile C Compiler. Лежит на Гитхабе: sergev/vcc

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

Для начала я сделал кодогенераторы для riscv64 и riscv32. Подробнее смотрите Riscv_Backend.md. Можно компилировать бинарники и сразу запускать их на QEMU, например:
vcc -o hello.elf hello.c
qemu-system-riscv64 -M virt -bios none -display none -serial stdio -monitor none -kernel hello.elf
Для 32-битного riscv добавляем флаг -t riscv32:
vcc -t riscv32 -o hello32.elf hello.c
qemu-system-riscv32 -M virt -bios none -display none -serial stdio -monitor none -kernel hello32.elf
Дальше по плану будут aarch64, x86_64, arm32, avr и msp430. Под конец можно задуматься про mmix.

СЯУ

Oct. 2nd, 2026 11:18 am
vak: (Аристипп)
[personal profile] vak
Генетическая разница между мужчиной и женщиной примерно такая же, как между человеком и шимпанзе: 1-2%.

Очевидно, причина, по которой мужчины и женщины живут друг с другом, а не с шимпанзе - чисто эстетическая. 😀

мелочи

Oct. 1st, 2026 01:37 pm
juan_gandhi: (Default)
[personal profile] juan_gandhi
Мне понравилось французское слово "серебро" (cérébraux)

Каспаров является очевидной целью российского заговора с целью политических убийств в США

Муратов, лауреат нобелевской премии, тайно сговаривался с Витьковым да с американской администрацией, чтобы обменять российских политзаключенных на отмену санкций; Шейтельман прикидывает, что один российский политзэк таким образом будет стоить как минимум 400 украинских жизней, которые будут потеряны за полученные Россией дополнительные деньги.

Всё. Бля.

Глуховский всё

Sep. 30th, 2026 10:30 pm
juan_gandhi: (Default)
[personal profile] juan_gandhi

 Почитал я страниц 10-15 Глуховского. У него там разве что первые три страницы являются художественным произведением. А дальше... ну неумело так. На мои дыбры да телеги похоже. Был, стоял, шел, пришел, увидел, сел. Так не пишут.

Короче, извините все, кому я посоветовал заглянуть. Не надо. Есть хорошие писатели. На русском. Солоух, Зиник, Жолковский, Юрьенен... да мало ли.

Проехали.

Кстати, Стругацкие куда лучше.

Profile

alogic: (Default)
alogic

December 2016

S M T W T F S
    123
45678910
11121314151617
181920212223 24
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 8th, 2026 12:35 am
Powered by Dreamwidth Studios