crypt of decay [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

никогда не меняются [Dec. 12th, 2023|10:33 am]
гебешные подстилки никогда не меняются. стоит ли, сидит ли, лежит ли — но куратор приказал явку обеспечивать, и подстилка ответила: «слушаюсь!»
Link

профессионалы индустрии in da action [Dec. 12th, 2023|08:33 am]
всяким там чатжопотэ, как известно, занимаются крутые профессионалы, цвет, так сказать, индустрии. именно поэтому страница покупки их платных услуг встраивает токен авторизации в урл, и больше никаких валидаций токена не делает. let it sink in for a moment. время протухания токена — около недели.

не знаю как вы, а я, конечно, совершенно уверен, что подход к подбору остального персонала там намного более ответственный. в конце концов, я согласен, что такая мелочь, как страница оплаты со всеми деталями (включая полный номер кредитки, имя и, кажется, даже адрес) не заслуживает того, чтобы тратить на неё какие-либо усилия. как-то там работает — и ладно.
Link11 meows|meow!

не то чтобы интересно, но... [Dec. 5th, 2023|04:26 pm]
…немного любопытно: наступит ли когда-нибудь такое время, когда Гашек станет неактуальным?
Link8 meows|meow!

кстати, о melodic death [Dec. 4th, 2023|07:16 am]
кстати к прошлому. если хотите melodic death, в котором ребята не забывают с первых же минут, что они всё-таки рубают дезняк — то обратите внимание на Intestine Baalism. но учтите, что дезняка там значительно больше, чем принято в «обычном мелодик дез» (который — давайте будем честными — просто спид/павирмитол с гитарами пониже, плюс вокалиста искать не надо).
Link4 meows|meow!

Dark Tranquillity: The Gallery [Dec. 3rd, 2023|10:52 pm]
решил пройтись по прочему «экстриму» в коллекции, и внезапно обнаружил забавное: делюкс «галереи». в делюксе добавили несколько каверов, и boy, they couldn't do more wrong there! потому что кавер мейденов убивает весь альбом, наглухо. да, я понимаю, что «melodic death» — это более-менее про «а давайте играть мэйденов, но чтобы ЫКСТРИМ!», однако тут вышло совсем уж комично. если поставить кавер первым, дальше можно сделать надпись: «а теперь послушайте, как мы пытались в то же самое, но не смогли.»

альбом, впрочем, неплохой. хотя как по мне, то «projector» всё равно лучшее из DT. ну, и несомненный плюс DT в том, что я таки держу у себя всю их дискографию, и даже иногда слушаю. а in flames, например, после the jester race слушать вообще невозможно. ну, до «whoracle» оно у меня лежит, совершенно непонятно, нахера. дальше я вообще не знаю, кому эта хреновина нужна.
Linkmeow!

как я умудрился это пропустить?! [Dec. 3rd, 2023|08:29 am]
каким-то магическим образом я умудрился ваще наглухо пропустить мунспеловский «1755». и совершенно зря: он, похоже, имеет все шансы стать если не самым, то одним из самых мной любимых у Moonspell. я ненавижу дурацкие пассажи про «атмосферу альбома», но блин: это один из тех редких случаев, когда да! исключая заоркестрованый опенер из Alpha Noir — который, наверное, продвинутые ценители музыки с пониманием оценят; но как по мне, то он там не пришей пизде рукав. и ещё: это тот случай, когда альбом работает только целиком. далеко не про каждый «концептуальный альбом» так можно сказать, и это скорее достоинство, нежели недостаток. в смысле — «концептуальный альбом» и должен так работать.

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

p.s.: бонус туда положил какой-то идиот.
Link4 meows|meow!

забавно [Nov. 29th, 2023|08:51 pm]
понадобилось тут как-то раздавать файлам уникальные id — с учётом того, что inode у них не всегда имеется. попробовал разные простенькие хэши, что под рукой оказались. из тех, что не очень много кода. понятно, что какой-нибудь длинный криптохэш бы справился, но идея такая, что желательно несколько строчек асма бы. результат оказался довольно забавный.

взял, значит, базу mlocate, оставил там только уникальные имена, и смотрел как её кушают вороны. 3192666 unique file names. (666 само вышло, я не специально!)

по итогу простенький хэш Боба Дженкинса «one-at-a-time» зарулил его же lookup2, lookup3 и fasthash32 (этот взял чисто поржать).

joaat вот такие результаты дал:
4105 (117 for same length) collisions found.

lookup2 — как Боб и предупреждал — просто хуже, по всем параметрам (кроме, может, скорости). общих коллизий чуть больше, чем у joaat. если считать коллизии с учётом длины имени (то есть, включать в id длину) — то, парадоксально, у joaat вообще в два раза меньше.
4228 (336 for same length) collisions found.

lookup3 по количеству общих коллизий чуть-чуть выиграл, но с учётом длины результат всё ещё сильно хуже, чем у joaat.
3791 (290 for same length) collisions found.

fasthash32 по количеству общих ещё сильнее выиграл, но с учётом длины — не смог.
3765 (182 for same length) collisions found.

понятно, что 64-битные варианты lookup3 и fasthash64 дали 0 коллизий. но lookup3 довольно большой, а у fasthash64 — 64-битное умножение. joaat же — пара сдвигов, сложение и xor.

поскольку мне avalanche в unique id не нужен, надо только чтобы уникальные, то аугментировал joaat до 64 битов вот так:
static void joaat2x (const void *buf, size_t len, uint32_t *hash1p, uint32_t *hash2p) {
  uint32_t hash1 = *hash1p, hash2 = 0;
  const uint8_t *s = (const uint8_t *)buf;
  while (len--) {
    hash1 += *s;
    hash1 += hash1<<10;
    hash1 ^= hash1>>6;
    hash2 -= hash1;
    s += 1u;
  }
  hash1 += hash1<<3;
  hash1 ^= hash1>>11;
  hash1 += hash1<<15;
  hash2 -= hash1;
  *hash1p = hash1;
  *hash2p = hash2;
}

то есть, просто добавил дешёвый аккумулятор во внутренний цикл — одно вычитание (можно было и сложение, в данном случае неважно). с таким дополнением коллизий стало ожидаемо 0.

это я всё к тому, что иногда Старые Простые Методы как минимум не хуже, а то и лучше Новых Продвинутых. то, что joaat обрабатывает буфер побайтово — в данном случае опять неважно: имена файлов особо длинными не бывают. зато он охуеть маленький, и на асме пишется буквально в несколько строчек. опять же: всегда можно сделать оптимизированый вариант joaat, который будет читать по 32 бита в регистр за раз, а потом unrolled loop их обработки.

в принципе, последнее вычитание из hash2 не нужно, я его для красоты добавил. если убрать — результаты ожидаемо не изменятся: аваланч в аккумуляторе всё равно никакой, акк работает чисто контрольной суммой.

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

я в списке инклюдов беру базовое имя файла (без пути), и домешиваю к хэшу ещё размер и mtime. это может не очень хорошо сработать, если в разных каталогах инклюды с одинаковым именем и размер совпадает (у меня в системе это частая ситуация: главный файл каталога всегда называется одинаково, и в основном он делает один include файла уже с нормальным именем), но ирл спасает mtime. могут быть проблемы, если систему развернули из какого-нибудь архива, который mtime не сохраняет, правда. но в моём случае это неважно.
Link6 meows|meow!

если у кого-то были ещё сомнения [Nov. 23rd, 2023|09:17 pm]
ну вдруг сабж, мало ли. как только полный пиздец хамасу замаячил не на горизонте, а прямо у порога — мгновенно тормоза, «переговоры» и вся хуйня. илитка позволяет только создавать «очаги напряжённости», а уничтожать их — никогда и ни за что.

до кого ещё не дошло — рассмотрите перспективу «скорого конца войны с россией» в свете последнего утверждения. для особо просветлённых дивнюков напишу открытым текстом: никакой победы не будет. ну, точнее, Охуительной Победой объявят пуски ракет раз в месяцок, да постоянные «мелкие стычки на границе». но ещё нескоро. привыкаем жить в Новой Нормальности, чо. впрочем, это мнение врага-пораженца, конечно, который вместо криков «славаукраине» имеет наглость тыкать пальцем в кучи говна, которые Настоящие Патриоты Украины замечать не должны.
Link

кстати, про [Nov. 23rd, 2023|07:21 pm]
[Tags|]

охуенное количество контор (включая гос, и критические для инфраструктуры конторы) работает на «1с». это всё, что имеет смысл знать про «независимую хрюкаину». двадцать+ лет Великой Нэзалэжности, очевидно, слишком мало, чтобы разработать и использовать своё. ничего, главное погромче кричать «славаукраине». а важный софт можно брать у страны-агрессора, и без исходников. подумаешь. возбуждать расследование по поводу глупых слов старой дуры фарион всяко важнее.
Link

немного допилил YTERM [Nov. 19th, 2023|03:49 pm]
категорически заебло, что в терминале невозможно узнать про нажатия чего-то типа «C-S-Enter» (или пробел, или альфанум). поэтому допилил специальное YTERM-расширение: «\x1b[<upper-ascii-code>;<modcode>Y».

modcode — обычный код для модофикаторов, который используется и в других OSC:
n;2 — Shift
n;3 — Alt
n;4 — Alt+Shift
n;5 — Ctrl
n;6 — Ctrl+Shift
n;7 — Ctrl+Alt
n;8 — Ctrl+Alt+Shift

естественно, просто Alt генерит обычный Esc, code. и Shift с циферками не перехватывается. а остальное — таки да. включая Alt+Shift+буковка, потому что мне так удобней.

соответственно, я теперь могу писать tty-софт, который умеет в кучу кейкомбов с разными-всякими модификаторами. конечно, работать это будет только в моей терминалке — но меня не волнует, я другие терминалки не использую. никто не мешает всем остальным эмуляторам терминалов взять — и поддержать Мой Охуительный Стандарт. не хотят? ну, их проблемы.

я — как обычно — совершенно не понимаю, почему до сих пор на такие комбы нет стандарта. если уж ведро пинусов так держится за протокол дивайсов более чем полувековой давности — хуй с ним. но нахера делать вид, что с тех пор ничего не поменялось? у нас есть клавиатуры с кучей модификаторов — но использовать это нормально в консольном софте невозможно, потому что… а хуй знает, почему. видимо, потому что ссаные пинусы — это повторение уёбищной, собраной на коленке говнооперационки 70-х годов прошлого века.

впрочем, я слишком многого хочу от ведра пинусов: там даже стандарта на OSC от функциональных клавиш (и некоторых других, типа Home/End) нет. дебилыбля.

кстати, нумерация Shift+F-кнопочек в OSC нихуя не последовательная. почему? потому что идите нахуй, вот почему. потому что на старых клавах были F1-F4, и всё. поэтому S-F1..S-F4 — это [23..26]. 27 — пропущен. Очень Страшное Число даже в десятичной записи, а не одним байтом, лучше не использовать, ага. S-F5 и S-F6 будут 28 и 29. число 30 тоже Очень Страшное, его опять пропустили. S-F7..S-F10 — [31..34].

и если вы думаете, что без шифта хотя бы Fn нормальные… F1-F5: [11..15]. F6..F10: [17..21]. а потому что идите нахуй два раза, вот почему. ах, да. это rxvt. а если xterm — то F1-F4 совсем особенные, они генерируют «\x1bOP» и далее до «S».

о, и ещё. F11 и F12. хахаха. F11 — 23. F12 — 24. конечно, 23 — это «Shift+F1». а кого ебёт, зачем нам отличать F11 от Shift+F1? или F12 от Shift+F2? в общем, их я тоже в своё расширение вынес, с кодами 111 и 112.
Link30 meows|meow!

вот и луне пизда приходит [Nov. 15th, 2023|08:03 am]
чую, чую мракобесие!

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

ну и хуй с ним, прекращу собирать, значит. меня, в принципе, и то что есть устраивает.
Link10 meows|meow!

лол [Nov. 11th, 2023|06:50 am]
гейдевы вытащили из… сумки новую отмазку: «дивелапмент воз рашд!» отличный отмаз. «мы нищасные, на нас давили издатели, нам не давали бабосиков, мынивинаваты! главное — вы купили наше говно, ахахаха, лохи.»

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

я, кстати, считаю, что срок рефанда на игоря должен быть минимум месяц. да, большинство людей будут проходить вашу срань и рефандить. а не делайте срань потому что. вообще-то известный факт: люди согласны платить за то, что считают хорошим; доля тех, кто принципиально всё быстро пробегает и рефандит весьма небольшая. так что при таких раскладах не «игорей станет меньше», а говна. делайте ваши игори так, чтобы во-первых, люди не хотели свои деньги обратно. а во-вторых (которое продолжает во-первых) так, чтобы в игоря хотелось играть и после прохождения. ну, или идите пилить онлайн-дрочильни, там лохи не переведутся никогда.
Link5 meows|meow!

и ещё к прошлому, про языки [Nov. 7th, 2023|11:26 pm]
на самом деле встроеный в восьмибитки бейсик — это было отлично. да, бейсик как язык для написания софта уёбищен. зато он простой, быстрый и интерактивный. обычно человеку нахуй не всралось читать труды Корифеев, изучать структурное программирование, дизайн кода и систем, чтобы сделать простенькие расчёты или обработку текстов. потому что ему, блядь, надо сделать простенькие расчёты или обработку текстов. и вот тут язык с минимумом ограничений и мгновенным реагированием идеален.

оберон, в принципе, тоже очень простой. но всё-таки уже имеет оверхэд: описание модуля, описание процедуры, описание переменных, begin/end, это вот всё.

систему, приближеную к идеальной, я вижу как-то так: там должно быть очень просто писать на каком-нибудь варианте бейсика. буквально: «набрал кусок кода где угодно, выделил, исполнил.» делать этот бейсик быстрым или с овердохуя возможностей совершенно не обязательно, потому что точно так же «выделить-скомпилить» можно и код на обероне. как только бейсика перестаёт хватать или он начинает тормозить — можно щёлкнуть по документу с кратким, в несколько страниц, описанием оберона и интерактивными примерами.

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

и мы имеем возможность сразу сделать с техникой что-то полезное и даже относительно интерактивное, при этом понизили порог вхождения. большинство людей даже не будут думать об этом как о «программировании», потому что «программирование» — это огромные неповоротливые иде, куча говнокода, и всё такое. а тут просто несложные и быстрые команды компу, какое ж это программирование.
Link34 meows|meow!

кстати, об интерфейсах [Nov. 6th, 2023|03:57 am]
никогда не замечали странной штуки: современные компьютеры — буквально, «вычислители» — неудобнее всего применять именно для вычислений? вот эта вот коробка, единственное реальное умение которой заключается в пердоленье чисел, не может вычислить даже простое арифметическое выражение в тексте и заменить его на результат. охуительно: до пизды битов, fpu, simd, вся вот эта ебатория — а просто посчитать выражение до сих пор ёбаный квест.

кстати, большинство (все?) древних домашних восьмибиток могли считать сразу после включения. и вообще после включения могли сразу использоваться для составления программ. сегодня мы имеем в биосе срануюсь ось, которая нужна чтобы загрузить другую сраную ось, которая нужна чтобы загрузить гигабайты сраного мусора, которые нужны чтобы запустить встроеный в систему сраный калькулятор, который в большинстве случаев максимально уёбищен и не пригоден ни для каких практических расчётов.

современные компьютеры не годятся даже для того, чтобы с комфортом считать. всё остальное они делают ещё хуже.
Link114 meows|meow!

да, и ещё про стандарты форта [Nov. 5th, 2023|08:15 am]
по какому-то странному, нелепому стечению обстоятельств у тех, кто там сейчас активничает, никаких реальных форт-проектов нет. риторику: «да фигня, у нас есть такие проекты, но мы вам о них не расскажем!» я не покупаю.

где проекты на gforth? пока что я знаю только один: сборка самого gforth.

где проекты на bigforth? пока что я знаю вообще ни один.

минос? простите, но это уёбище (и опять-таки используется нигде).

spf? мертвей гвоздей, после eserv и nncron на нём ничего не было. а авторы этого софта в создании стандарта не участвуют. (да и вообще, после того, как туда взяли маков макроподстановщик-оптимизатор, добровольно пользоваться этой системой могут только экстремалы с тягой к неконтролируемому селфхарму.)

про всякие «коммерческие форты» чем меньше говорить — тем лучше. живут на том, что когда-то (давно) кого-то (трёх инвалидов) нечаянно угораздило вляпаться в это дерьмо, и теперь кодобазу на них хуй переделаешь.

и вот эта могучая кучка пытается диктовать практический общеприменимый стандарт форта (о нужности которого я писал отдельно). даже если бы стандарт и был нужен — то вот точно не от этих людей: любой их высер будет заведомо мёртворождённый.

да, у меня тоже только хобиийные для личного использования. так я и не лезу диктовать всем, каким должен быть Стандартный Форт. только каким не должен, а вынепонимаетеэтодругое.
Link3 meows|meow!

ёбаный гоцэцэ [Nov. 5th, 2023|06:40 am]
«а давайте… давайте… давайте дадим инструменты, но поломаные, но снаружи хорошие, и никому не скажем, что они поломаные, ахахахахаха!» пидорасы. в самом плохом смысле.

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

а теперь мы хотим то же самое, только джампать внутрь функций. а почему нельзя? параметров функции не принимают, локалов не используют. а мне удобно описывать примитивы как отдельные функции, чтобы можно было ядро расширять. и вот тут гоцэцэ начинает считать, что он просто охуеть умный какой.
void *fuck_you_gcc (void) {
  return &&mylabel;
mylabel:
  что-то-там
  goto **IP++;
}

круто, да? ну можно же? а вот хуй. сначала гоцэцэ матерится, что я, де, возвращаю указатель на локальную метку. блядь, да, прикинь: именно это я и хотел сделать! матерится, кстати, ворнингом, не еггогом. ладно. успокаиваем дегенерата.
void *fuck_you_gcc (void) {
  static const fuck_you_gcc_again[1] = {&&mylabel};
  return (void *)fuck_you_gcc_again[0];
mylabel:
  что-то-там
  goto **IP++;
}

на удивление, хвалёный data flow analysis тут каким-то образом умудряется обосраться и ничего не заметить. ворнинг пропал. но… нихуя не работает. потому что хвалёный data flow analysis обосрался. гоцэцэ считает, что метка, и всё, что за ней, не используется — и возвращает вместо адреса метки почему-то адрес входа в функцию. я хуй знает, почему он посчитал, что это «оптимизация, которая не меняет смысл программы». видимо, потому что гладиолус. ладно. обходим.
static volatile int fuck_you_gcc_agan_and_again;
void *fuck_you_gcc (void) {
  static const fuck_you_gcc_again[1] = {&&mylabel};
  if (fuck_you_gcc_agan_and_again == 0) {
mylabel:
    что-то-там
    goto **IP++;
  }
  return (void *)fuck_you_gcc_again[0];
}

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

ладно, всё равно никто даже не пытался. короче, несмотря на то, что IP — глобал, что я его даже пометил volatile — ебаный гоцэцэ решил, что этот гото может прыгнуть исключительно на эту метку, и больше никуда. ведь других меток в функции нет. поэтому он заменил индирект на простое «jmp mylabel». ай, бля, красава, ай, бля, спасибо! это, видимо, снова Охуительная Не Меняющая Смысл Кода Оптимизация. попытки прояснить гоцэцэ при помощи трюков встроеного асма закономерно не работают. ладно. всовываем всем в жопу лом.
static volatile int fuck_you_gcc_agan_and_again;
void *fuck_you_gcc (void) {
  static const fuck_you_gcc_again[2] = {&&mylabel, &&fuck_gcc_developers_with_long_crowbar};
  if (fuck_you_gcc_agan_and_again == 0) {
mylabel:
    что-то-там
    goto **IP++;
  }
fuck_gcc_developers_with_long_crowbar:
  return (void *)fuck_you_gcc_again[0];
}

вы не поверите, но на этом месте гоцэцэ устал со мной бодаться и сгенерировал именно тот код, которого я от него добивался. ура, у нас же теперь АЖ ЦЕЛЫХ ДВЕ МЕТОЧКИ, значит гото нельзя «оптимизировать»! то, что вторая не используется — гоцэцэ, к счастью, не заметил.

да, здесь денегераты со «стандартом» в верхней жопе начнут мне рассказывать, что использование адреса метки вне функции, где она определена — это UB, а потому гоцэцэ имеет право на всё вышеописаное. с этими существами я спорить не буду по причине отсутствия у них мыслительного органа.

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

p.s.: ответ на вопрос, который никто не задавал: «почему не использовать просто адреса фнукций, там же всё равно нет аргументов и локалов?» потому что при каких-то странных условиях гоцэцэ иногда им зачем-то всё равно приписывает пролог и эпилог. я не очень понял, что является триггером, но. соответственно, `goto` эпилог не делает, и стек улетает в гости к венерианским сисястым шлюхам. (дополнение: это может быть пиздёж с моей стороны, вызваный Тяжёлыми Обстоятельствами. но я всё равно изначально хотел объединять несколько примитивов в один «пакет», и всё равно засунуть их все в одну функцию не выйдет, их там за триста штук, и они всё равно могут джампать наружу из функции.)
Link18 meows|meow!

серия «как определить», форт [Nov. 4th, 2023|06:42 pm]
как быстно определить, что человек абсолютно не знает форта, не умеет на нём писать, и ничего стоящего внимания на форте не делал? у него нет своей форт-системы.

она не обязательно должна быть написана с нуля, но она должна быть. индивидуальная.

это, если что, то, как форт был изначально задуман.

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

и да, это идёт абсолютно вразрез с «общепринятыми практиками». именно поэтому единственный, кому удалось использовать форт всю жизнь и быть вполне успешным — Чак Мур. который эти практики игнорировал инстинктивно. все остальные (включая меня, конечно) слишком зашорены, слишком укушены в мозг.

я вон заместо мыслить критически — тупо реализую ненужные куски стандартов. потому что Так Принято. например, вместо красивого «<BUILDS DOES>» — упорно пытаюсь сделать, чтобы «DOES>» можно было использовать с CREATE. зачем? а потому что «фиг-форт устарел!» (что не мешает мне тащить фигфортовую VARIABLE, да).

упорно использую VALUE вместо QUAN. почему? Патамуша Стандарт. хотя QUAN намного лучше: описание переменных отдельная часть, там нормально иметь странное слово. а слово «value» слишком общеупотребительно. в форте не зря «VARIABLE» и «CONSTANT»: это не от любви к многословию, а потому что никто в здравом уме не станет использовать эти слова полностью для других целей.

до сих пор не сделал стек CURRENT. вместо этого при необходимости сменить и восстановить CURRENT — гажу на обычный. фу.

ладно хоть хватило мозгов в новые системы затащить опциональный адресный регистр, он удобен для всяких цепочечных сканов. а так куча всего, что давно надо бы в моих фортах переделать нормально — но…

это я всё к тому, что даже я со своим илитизмом укушен. что уж говорить о бедных новичках, которые приходят учить форт, и им НИКТО НИКОГДА не говорит, что все стандарты поебень, авторы стандартов идиоты и злонамереные мудаки, и форт совсем не про то, что новичкам пытаются впарить. люди мучаются, мучаются, закономерно не понимают, что в этом вашем форте такого, и уходят.

p.s.: самый яркий показатель того, что человек на форте писать не будет — вопросы типа: «у кого есть форт под XXX, где скачать?»
Link4 meows|meow!

именно так [Nov. 3rd, 2023|07:19 pm]
ANSI Forth is ANTI Forth.

единственные две причины, по которым нынешняя инкарнация UrForth/C имеет сишный кернел и слой совместимости с анс это: я не ожидаю, что кто-то будет в состоянии портировать UrForth/x86 чтобы запускать софт на нём на других системах, и у ans есть хороший тестер, который у меня руки не доходят переписать — проще прямо в начале кода тестов дорихтовать систему до анс-идиотии.
Linkmeow!

овцы против стрижки, лол [Nov. 2nd, 2023|08:42 pm]
ахуеть, ани слидят занаме!

ну кто бы мог подумать, что все эти «умные поеботины» делаются во-первых, дегенеративными макаками, а во-вторых, их дырявость не баг а фича? ну ничего же, блядь, не предвещало.

хумансы пиздец тупые.
Link16 meows|meow!

кстати, стандартизаторы форта — ебаные дегенераты, естественно [Nov. 2nd, 2023|04:10 pm]
Please let us know if a modern, actively developed system is missing in this list. а там, конечно: «To contact us, please file an issue on github.»

в принципе, это всё, что надо знать про стандартизацию, про дегенератов, которые этот стандарт делают, и про то, что они мечтают сделать с фортом.

жаль, что там есть люди, которых я в своё время уважал. но потом они ебанулись, и сейчас все достойны только плевков.

а стандарт их говнина ебаная, конечно.
Link10 meows|meow!

navigation
[ viewing | 20 entries back ]
[ go | earlier/later ]