LINUX.ORG.RU
ФорумTalks

Релиз Pisaahriktux 4.0 (Naagliteruufaetraceerefocozeneaxtoreial II)

 , , ,


2

1

Вышел релиз Pisaahriktux 4.0 (Naagliteruufaetraceerefocozeneaxtoreial II), сборки для Raspberry Pi на основе PiLFS для юзеров ядерной фреймбуферовской консоли без иксов с локалью KOI8-R.

В этой версии: aalib-1.4.0, aria2-1.28.0, arj-3.10.22, asterisk-13.9.1, audiofile-master, aview-1.3.0, bdwgc-gc7_6_0, beetle-supergrafx-libretro-master, biew-610, bitlbee-3.4.2, bvi-1.4.0, catdoc-0.95, cfitsio, Char-KOI8R-1.08, clit18, cmake-3.6.2, curl-7.50.1, Cython-0.24.1, db-6.2.23, DirectFB 1.7.7, djvulibre-3.5.27, ed-1.13, emacs-25.1, enca-1.19, fbgrab-1.3, fbi-2.12, fdupes-1.6.1, fetchmail-6.3.26, flac-1.3.1, flasm, flux 1.4.4, fontconfig-2.12.1, freetype-2.7, fribidi-0.19.7, frobtads-1.2.3, frotz-2.44, gambatte-libretro-master, gdb-7.11.1, Genesis-Plus-GX-master, giflib-5.1.4, git-2.10.2, glib-2.48.2, gnu-ghostscript-9.14.0, gnutls-3.5.3, gophernicus-2.0, guile-ncurses-2.0, ha-master, hdf5-1.8.17, ImageMagick-7.0.3-0, indent-2.2.10, irssi-0.8.20, jansson-2.9, jp2a-1.0.6, jq-1.5, lame-3.99.5, lcms2-2.8, lftp-4.7.3, lha-1.14i-ac20050924p1, libao-1.2.0, libass-0.13.2, libatomic_ops-7.4.4, libcaca-0.99.beta19, libdrm-2.4.70, libexif-0.6.21, libgcrypt-1.7.3, libgpg-error-1.24, libiconv-1.14, libidn-1.33, libjpeg-turbo-1.5.0, libogg-1.3.2, libpciaccess-0.13.4, libpng-1.6.25, libpthread-stubs-0.3, libretro-fceumm-master, libretro-vecx-master, libsigc++-2.99.7, libsigsegv-2.10, libtasn1-4.9, libtheora-1.1.1, libtommath-1.0, libtorrent-0.13.6, libunistring-0.9.6, libusb-1.0.20, libvorbis-1.3.5, libvpx-master, libxml2-2.9.4, libxmp-4.4.0, lighttpd-1.4.41, links-2.13, lunzip-1.8, lynx2.8.9dev.10, lziprecover-1.18, lzlib-1.8, maxima-5.38.1, mc-4.8.18, mpg123-1.23.6, mplayer-2016-09-18, mpv-0.20.0, msmtp-1.6.5, mutt-1.7.1, mypy-0.4.5, nano-2.7.1, nettle-3.2, nmap-7.30, numpy-1.11.2, p7zip_16.02, pdb2txt, plzip-1.5, poppler-0.47.0, poppler-data-0.4.7, prboom-plus-2.5.1.4, procmail-3.22, psftools-1.0.7, rename-1.9, RetroArch, rtorrent-0.9.6, scons-2.5.0, screen-4.4.0, SDL12-kms-dispmanx-master, SDL2-2.0.4, SDL2_image-2.0.1, SDL2_mixer-2.0.1, SDL2_net-2.0.1, SDL2_ttf-2.0.14, SDL_image-1.2.12, SDL_mixer-1.2.12, SDL_net-1.2.8, SDL_ttf-2.0.11, sdparm-1.10, sharutils-4.15.2, snes9x2002-master, sox-14.4.2, speex-1.2rc1, squashfs-utils 4.3, strace-4.13, swftools-2013-04-09-1007, tcsh-6.19.00, tiff-4.0.6, TiMidity++-2.14.0, tree-1.7.0, unarj-2.65, unrar, unrtf-0.21.9, vorbis-tools-1.4.0, wcslib-5.15, xmp-4.1.0, zip30.

Отдельно привожу список компиляторов и интерпретаторов:

  • bwbasic 3.0 (Bywater BASIC Interpreter)
  • GNU Cim 5.1 (Simula compiler that compiles into C)
  • f2c (Fortran to C Translator) version 20100827
  • FOCAL-1.0.1
  • Focal-81 by Dave Conroy
  • Free Pascal Compiler 3.0.0
  • Gforth 0.7.3 (GNU Forth)
  • GNU Cobol 2.0-rc2
  • GNU Guile 2.0.12 (implementation of the Scheme programming language)
  • GNU Smalltalk 3.2.5
  • The Icon Programming Language 9.5.1
  • MARST 2.7 (Algol 60 to C Translator)
  • The Mumps Compiler 17.11 by Kevin C. O'Kane
  • Nim Compiler 0.14.2
  • Erlang/OTP 19.0
  • Python 3.5.2
  • Refal-5 Version PZ Feb 29 2016
  • Regina-REXX 3.9.1
  • Ruby 2.3.1
  • Steel Bank Common Lisp 1.3.11
  • SNOBOL4 2.0 (The Macro Implementation of SNOBOL4 in C (CSNOBOL4B))
  • Vishap Oberon Compiler (oberon-2 compiler)
  • PHP 7.0.12
  • YASM 1.3.0 (Modular Assembler)

Напоминаю, что рекомендуемый объём карты памяти теперь составляет не менее 8 Гб, хотя теоретически оно должно влезать и на 4 Гб (но, фрагментация).

Скачать: http://saahriktu.org/downloads/pisaahriktux_4.0_distro.tar.xz

★★★★★

Последнее исправление: saahriktu (всего исправлений: 1)

Давненько я не встречал сайтов жёлтое-на-чёрном. В 1997-2005'е годы такие же делал, верстал по размеру своего монитора.

Поддерживаю. Молодец. Разработчик уровня Эдика. Единственное что пока очень не хватает - это HTML-описания для каждой выложенной поделки. Скачивать и распаковывать .lzma станут далеко не все. Я серьёзно - добавь описание ..

pacify ★★★★★
()
Ответ на: комментарий от pacify

Краткие описания, как они есть в выхлопе того же «apt-cache search», там есть. Если только раскрыть подробннее.

жёлтое-на-чёрном

Вообще-то там зелёный на чёрном:

text="#00aa00" link="#00ff00"

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 2)

для юзеров ядерной фреймбуферовской консоли без иксов с локалью KOI8-R

cast Eddy_Em , смотри-ка, о тебе заговорили во множественном числе! :D

Manhunt ★★★★★
()
Ответ на: комментарий от kirk_johnson

Вам постоянно приходится редактировать чьи-то тексты в юникоде? В таком случае этот процесс можно автоматизировать.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от kirk_johnson

Потому, что «Keep it simple, stupid». Однобайтная кодировка проще многобайтовой. Но, желающие, конечно, выбрасывают на помойку однобайтные кодировки вместе с sysvinit и принципом KISS.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

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

kirk_johnson ★☆
()
Ответ на: комментарий от kirk_johnson

Ну. KOI8-R архитектурно проще и предсказуемее юникода. Соответственно, с текстами в KOI8-R работать проще. Вот чтобы с текстами проще было работать они предварительно и конвертируются в KOI8-R если они ещё не в KOI8-R. Всё просто.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Вот чтобы с текстами проще было работать они предварительно и конвертируются в KOI8-R

ЮАРЬ ПИТИБЮַ ПИЫХ БЬИПБ, ЮַФЕИ РЯ ЮИФ ПИХ ПИИХИВ.

h578b1bde ★☆
()

Naagliteruufaetraceerefocozeneaxtoreial II

Пх’нглуи мглв’нафх Ктулху Р’льех вгах’нагл фхтагн!

dexpl ★★★★★
()
Ответ на: комментарий от kirk_johnson

Нет, каждый работает с текстом в кодировке его локали. Всё инструменты в системе затачиваются под кодировку локали. И если кодировка текста не соответстует кодировке локали, то текст конвертируется в кодировку локали (а этот момент можно автоматизировать) и обрабатывается. Также можно автоматизировать и конвертацию при отправлении куда-то если это нужно.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

То ессть мы пишем десять библиотек, поддержку в локалях и утилиты конвертации вместо одной библиотеки для работы с utf. Когда kiss начнется-то?

P.S. И это я еще про шрифты не начинал.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

Так в том-то и дело, что специфичные вещи нужны как раз таки для юникода, а поддержка KOI8-R уже есть на уровне glibc и шрифтов в 256 символов. А где найти шрифты в сотни тысяч символов вашего юникода и куда и как их прикручивать - это ещё вопрос. Утилита iconv входит в состав glibc и с одной только её помощью можно всё переконвертировать в KOI8-R, а дальше просто работать с отдельными байтами без всяких библиотек. Если задействовать мою утилиту n7t328IIpnwd, то для этого понадобится всего одна дополнительная библиотека сверх glibc - libunistring. А вот для работы с юникодом как с юникодом только glibc и libunistring не обойтись... Тут начинаются танцы с привлечением ICU и десятков других библиотек...

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

В git utf8. Я шото не видел там icu. Алсо «если уже написано стопицот софта то это не блоатварь» плохой аргумент в пользу kiss.

kirk_johnson ★☆
()
Ответ на: комментарий от kirk_johnson

Чтобы просто перекладывать строки, конечно, никаких дополнительных инструментов ненужно. А вот когда начинается хотя бы форматирование текста по ширине (и, соответственно, разбивка на подстроки определённой ширины в символах), то тут всё резко усложняется, поскольку сходу неизвестно как эти символы считать, особенно если оно прочитано в char *. Можно читать в wchar_t, только линуксовый wchar_t по 4 байта (даже для ASCII символов), а по стандартам юникода символ может гулять в диапазоне 1-6 байт. Т.е. и этого мало. И, да, там ещё модификаторы, которые по задаче не надо считать за символы. И без дополнительных таблиц модификаторов/библиотек тут не обойтись. А вот с однобайтными кодировками здесь проблем нет.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

Мультибайтные функции glibc'а заточены на работу именно с wchar_t, поскольку это стандартный тип «wide char», который позволяет проще разбираться в юникодных символах. На замену той же printf() пришла

int wprintf(const wchar_t *format, ...);
И т.д. Всё, что работает с «char *», - классическое однобайтное. Со всеми вытекающими последствиями. Но, при простом копировании, да, разницы нет.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Glibc вообще сборище костылей. Я не понимаю, почему ты так к нему привязался.

P.S. Вот так твой git работает с utf8. Да, с char *. Да, C убог.

static ucs_char_t pick_one_utf8_char(const char **start, size_t *remainder_p)
kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

Потому, что «GNU libc» базовая библиотека в GNU/Linux. Есть, конечно, uClibc, musl libc и *BSD со своими реализациями, но это уже, можно сказать, другая тема.

Нет, C прекрасный язык, но любым инструментом нужно уметь пользоваться.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

Потому, что «GNU libc» базовая библиотека в GNU/Linux. Есть, конечно, uClibc, musl libc и *BSD со своими реализациями, но это уже, можно сказать, другая тема.

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

Нет, C прекрасный язык, но любым инструментом нужно уметь пользоваться.

Нет, C (как generic purpose) убог. Потому что ручное управление памятью в софте для парсинга текста кроме как мастурбацией язык назвать не поворачивается. Не говоря уже о том, что строковой библиотеки там нет. А ещё функции с произвольным количеством параметров это ад. Нет generic'ов. Нет даже простейшей формы data types. Массивы выглядят как языковые ублюдки (я знаю почему, но это не отменяет их ублюдчности). Короче, так себе язычок для высокоуровнего софта.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

Потому что ручное управление памятью в софте для парсинга текста кроме как мастурбацией язык назвать не поворачивается.

Ты пытаешься объяснить, что мастурбация — это плохо человеку, искренне убежденному в том, что мастурбация — это то, для чего предназначен компьютер.

dexpl ★★★★★
()
Ответ на: комментарий от kirk_johnson

Потому что wchar_t это именно что многобайтовый char

Ну дык. UTF-32. Потому, что в UTF-8 все символы разного веса в байтах. Таким образом, всё сводится либо просто к массиву байт (и разбирайся в нём как знаешь) или к массиву структур наподобие:

struct utf8char {
   char size; // одного байта выше крыши
   char *data;
};
И вот чтобы избежать вот этого и упростить и ввели просто wchar_t с динамической конвертацией в UTF-32 и обратно.

так себе язычок для высокоуровнего софта

Так это низкоуровневый системный язык. Ассемблер, конечно, ещё ниже уровнем.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Ну дык. UTF-32. Потому, что в UTF-8 все символы разного веса в байтах. Таким образом, всё сводится либо просто к массиву байт (и разбирайся в нём как знаешь) или к массиву структур...

Нет, не сводится. UTF-32 тоже нужно нормализовывать. И не забывай — фиксированный размер символа не отменяет того, что два последовательных символа могут отображаться как один. Так что замену по индексу ты один хрен сделать не сможешь.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от saahriktu

Так это низкоуровневый системный язык. Ассемблер, конечно, ещё ниже уровнем.

Низкий уровень это какое-нибудь ядро и мб твой dhcp сервер (и то не факт).

kirk_johnson ★☆
()
Ответ на: комментарий от kirk_johnson

Я говорил, что UTF-8 сводится. А что касается wchar_t, то именно поэтому я выше и упоминал про таблицу модификаторов/ICU.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

Вы в другой плоскости пошли. Уровень языка программирования обычно определяется тем, приходится ли программисту работать с отдельными байтами, или с конкретными абстракциями. Если программист пишет:

procedure0(a, b, d, c);
procedure1(a, b, c, e);
procedure2(n, m, k);
- это язык высокого уровня (высокоуровневые абстракции). А вот если программист пишет
        movb    $0, -5(%rbp)
        movl    -24(%rbp), %eax
        cltq
        leaq    0(,%rax,8), %rdx
        movq    -48(%rbp), %rax
        addq    %rdx, %rax
        movq    (%rax), %rax
        movl    $.LC7, %esi
        movq    %rax, %rdi
        call    strcmp
        testl   %eax, %eax
        jne     .L12
        movl    $.LC8, %edi
        movl    $0, %eax
        call    printf
        movl    $.LC9, %edi
- это уже низкий уровень.

Си - посередине.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от kirk_johnson

Ну так и на языках высокого уровня тоже можно с отдельными байтами работать. В том же Basic'е вообще были PEEK и POKE, которые позволяли работать с отдельными байтами в памяти.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

UTF-16. Microsoft решил что для внутренностей винды этого достаточно. А для чтения UTF-8/UTF-16 этого действительно хватает.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от kirk_johnson

Так я писал с точки зрения байт в памяти. Что там в винде меня не волнует, поэтому я про этот момент ничего и не писал. Но, если его рассмотреть...

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Так я писал с точки зрения байт в памяти. Что там в винде меня не волнует, поэтому я про этот момент ничего и не писал. Но, если его рассмотреть...

С точки зрения байт в памяти, впихнуть четыре байта в два у тебя вряд ли получится. А значит про портируемость можно забыть. Либо все-таки wchar_t для utf16 и тогда на лялехах он бесполезен и тратит в два раза больше памяти просто так. Либо признай уже, что ты ни разу в жизни этим API не пользовался, не знаешь как он работает, но пытаешься хоть как-то рационализировать свою любовь к KOI8-R.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 2)
Ответ на: комментарий от kirk_johnson

Портировать что-то на винды никто и не собирался. Мне гораздо важнее как оно работает в Линуксе. И я знаю не только про wchar_t. Если бы мне было важно писать портируемый между Линуксом и виндой софт, то я вполне мог бы задействовать char16_t/char32_t. Но, мне это фиолетово.

впихнуть четыре байта в два у тебя вряд ли получится

Если getwc() читает файл в UTF-8/UTF-16, то, теоретически, 4 байта в винде там быть и не должно. А практически они там могли нагородить что угодно, да. Но, мне это фиолетово.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

Если getwc() читает файл в UTF-8/UTF-16, то, теоретически, 4 байта в винде там быть и не должно. А практически они там могли нагородить что угодно, да. Но, мне это фиолетово.

Ты про UTF-32 тут заливал. Вот, даже цитату приведу:

Потому что wchar_t это именно что многобайтовый char

Ну дык. UTF-32.

Почитай уже (от авторов горячо любимой тобой glibc): https://www.gnu.org/software/libunistring/manual/html_node/The-wchar_005ft-me...

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

В Линуксе это именно 4 байта на символ. Я говорил исключительно про Линукс. Это Вы потом тут начали винды приплетать.

Я с виндов ушёл в 2004-м году, и с тех пор их больше не видел и видеть не желаю. И мне фиолетово что куда там портируется и у кого куда помещается или нет. Я просто уточнил, что этот тип есть в стандарте. А то, что мелкософт пошёл своим путём - это их проблемы.

Мне важно как я работаю с текстом в Линуксе.

А вот тут я предпочитаю юзать классические однобайтовые функции, которые не предназначены для работы с юникодом. И никакой wchar_t мне не нужен вместе с юникодом.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 3)
Ответ на: комментарий от saahriktu

1-6 байт, модификаторы, не надо считать за символы

Как же вы задрочили с этими кои-8 яйцами. Вот псевдокод, смотри как все просто:

while (something()) {
    byte = readByte();
    if (byte < 128) {
        len = 0;
    } else if (byte < 224) {
        len = 1;
    } else if (byte < 240) {
        len = 2;
    } else if (byte < 248) {
        len = 3;
    } else if (byte < 252) {
        len = 4;
    } else {
        len = 5;
    }
    skipBytes(len);
}
Если для «1-6 байт символа + 1-6 байт модификатора» нет аналогичной одиночной «1-6 байт сущности-символа», то их и надо считать как два отдельных символа «символ буквы и символ модификатора».

А этот касяк уже лежит на совести тех, кто закодировал модификаторы как отдельные символы (для детекта этого говна даже в регулярках есть соответствующие флаги). Понавыдумывали этих таблиц потому, что в утф-8 очень редко утверждают новые символы с модификаторами как один (1-6 байт).

Вот и сидят те, кому делать нехера, и лепят составные, да меж собой таблицами делятся. А потом когда в утф-8 всетаки добавят уже одиночные сущности — составные так и остаются гулять по приложениям и данным.

Но тебе в любом случае должно быть глубоко насрать, т.к. и модификаторы и символы и символы с модификаторами в шрифтах есть.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

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

Но! То что ты вообще напорешься на такое говно в Русском утф-8 — это еще надо найти такие символы и сидеть их с рвением волос на анусе коллекционировать.

deep-purple ★★★★★
()
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от deep-purple

Но, это опять же надо парсить, а не просто, например,

strptr + N
для перемещения указателя на N символов вправо. Вот чтобы так можно было с юникодом мне и рекомендовали wchar_t/char16_t/char32_t с ICU для выпиливания модификаторов. А тут, оказывается, передовые разработчики юникодного софта вообще на всё это чихали и лепят свои велосипеды для обработки отдельных байтов однобайтными функциями... И для кого, спрашивается, вводили мультибайтные? Нет, понятно, конечно, что это начинает жрать память. Ну так вот. Даже передовые разработчики юникодного софта предпочитают работать с отдельными байтами чтобы экономить память. Но, её можно экономить ещё больше - просто юзая однобайтные кодировки. И сразу всё становится ещё удобнее.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Ты понимаешь, что мультибайтный wchar_t не позволит тебе сделать по индексу? Потому в utf8 есть последовательности символов. Но дело в том, что проблемой программиста это становится исключительно в C, где строки сделаны через задницу. Во всех остальных языках доступ по индексу не является проблемой программиста.

kirk_johnson ★☆
()
Ответ на: комментарий от kirk_johnson

Тем ещё хуже для юникода. Проблемы, повторяю, не в Си, а в юникоде. В том, что его настолько усложнили, что без десятков специальных библиотек и велосипедов ничего не распарсить. А в языках более высокого уровня свои абстракции, куда это уже прикручено. А вот компиляторы/интерпретаторы этих более высокоуровневых языков всё равно написаны на Си, и, как говориться, негоже уподобляться свинье под дубом и быть неблагодарным Си. Си - это колыбель Unix'ов. И если человек знает и понимает юниксы, то Си для него - родной и прекрасный язык. Проблемы с Си возникают у тех людей, которые не желают разбираться в Unix'ах, а сразу лезут со своим видением архитектур и абстракций, резко всё усложняя на свой лад.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

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

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 3)
Ответ на: комментарий от kirk_johnson

Не «большая часть», а «некоторая часть». Да, есть и такое, но это исключения. А GCC на рельсы C++ перевели совсем недавно. Видимо, специалисты хорошо знающие Си начали заканчиваться. А так это совсем не норма, и исторически было иначе.

saahriktu ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.