Речь идет, про указание топлива «по умолчанию». В этом случае просто один шаг убирается. Если пользователь вставил не тот пистолет, то можно показать уведомление (вдруг перепутал), а если его дефолтное топливо не устраивает, то на экране выбора объема можно добавить кнопку выбора топлива.
Вашим сервисом не пользуюсь, так как заправляюсь только на Лукойле.
Пункт 4 вызывает так называемую «гонку» (race condition): если после п.4 со счета будут списаны все деньги до п.5, то п.5 выполнить не получится. Именно поэтому Яндекс делает списание до разморозки, или списание замороженного и возврат остатка.
Имхо, это глупость банков (или мир, visa, mastercard...), что не поддерживается корректировка замороженных средств.
Мы с женой всегда покупали гауду. Когда ввели санкции, то гауда пропала. Можно было найти «белорусскую», но что-то не впечатлила. А потом мы открыли для себя «белебеевский», который копия гауды. Камамбер и бри российские тоже ничего. Конечно, до французских не дотягивают, за то есть можно.
Скажем так, сыров сегмента «премиум» у нас еще не производится, по крайней мере, в промышленных масштабах. И для меня это не является чем-то удивительным, так как на премиуме сильно не заработаешь, а инвестиции отбивать надо.
Государство не производитель. Надо понимать государство, как организм, который соседствует с другими организмами. Задача организма выжить среди соседей… Поэтому организм пытается максимально быть независимым, чтобы не давать соседям возможности давить на себя.
Патриотическая идея типа импортозамещения очень благоприятно влияет на экономику. Вместо того, чтобы покупать конечные продукты соседей, страна покупает оборудование и технологии, с помощью которых сама начинает делать эти продукты. Да, по началу чувствуется недостаток, но потом, местные производители наверстывают. Типичный пример — сыр. Раньше было полно импортного, а наш был суррогатом частенько. Сейчас же очень много нормальных сыров появилось… С электроникой аналогично, только все намного дольше…
Если речь о встраиваемом оборудовании, то проблем нет. Если о серверах и прочем оборудовании для профессионалов — проблем почти нет. Проблемы только в области терминалов конечных пользователей: видеокарт нет, звуковух нет, windows и все написанное под wintel не пойдет.
Это не перекрытие, это просто он перестал быть интересен разработчику. Действительно нужный проект таким способом не перекроется. Тем более, что postgresql развивается не одной организацией, и, кстати, Postgres Pro в их числе. Поэтому, если ряду организаций на западе прищемят яйца и запретят разрабатывать эту бд (вы в это верите?), то разработка продолжится.
LTS — long term support, софт с увеличенным сроком поддержки. Например, есть обычные убунты и есть lts, для первых поддержка год, для вторых 4 (или больше, не помню), других отличий нет. Пожалуйста, не используйте термины, значений которых не знаете.
Если апстрим перекрыт, то у вас все равно будет поддержка, только фичи не так скоро появляться будут. А потом полностью перекрыть апстрим не выйдет, все равно найдутся способы доставания исходников, пусть даже через дип.почту. А вот поддержку проприетарного ПО вы через дип.почту не организуете.
Импортозамещение ПО — это доступ к ПО и его поддержке независимый от внешней политической ситуации. ВСЕ. Не важно, что взята иностранная разработка. Даже если отрубят доступ к иностранной поддержке, у пользователя сохраняется поддержка локальная. Этим не могут похвастаться производители коммерческих БД, так как исходники контролируются организациями, находящимися вне юрисдикции РФ.
Можно удобрять то, что не идет в пищу, имхо. Например, лесопосадки, промышленные культуры (лен, рапс, хлопок)… Хотя, я не биолог, могу чего-то не понимать.
Все, что в /usr/local — это вы сами накомпилировали и установили. Если ничего нестандартного не нужно, то там просто несколько пустых каталогов. А все настройки только в /etc и домашнем каталоге. Если вам надо править что-то вне этих каталогов, то вы делаете что-то не то, скорее всего.
Ну тут пригодился бы REP (команда повторения) с условием на различное количество команд 1/2/4/8.
REP сложнее реализовать.
А префикс исполнения — это у нас ARM получается.
Ну если только thumb2. В ARMv4 там у каждой инструкции было поле для условия (неразумное решение, имхо).
Ну мы же не шерифы, и должны думать об индейцах.
ну разработчики i8080 не думали же о том, как обезопасить программистов от call 0 или call 65535. Так же и тут. У арма, например, основная масса переходов — относительные. И это мне нравится! Кстати, линк регистр тоже классная штука. Вообще, в thumb2 очень много красивых инструкций, например, ITE.
Т.е. это софткорка на ПЛИСине? Тогда логику ломающих совместимость не понимаю. А так туда можно было запихать хоть ММХ для Z80 :)
Там с совместимостью проблем нет (она полностью сохранена). Там с головой разработчиков проблемы. Если бы они использовали стандартный для z80 подход к проектированию набора инструкций, то логики на новые инструкции ушло бы меньше. Гимору разработчикам компиляторов тоже. Ну вот зачем было у push nn хранить данные в обратном порядке?!? Все равно она сначала считает во временный 16-ти битный регистр, а потом уже запушит его в стек. Они думали, что проц будет читать побайтно?!? ХА! В классическом z80 даже этот временный регистр есть, если память не изменяет, WZ называется (он недоступен программно). Кроме того, полная длина инструкции push nn 4 байта (2 опкод и 2 данные), это тоже самое, что ld rr,nn; push rr!!! Кроме того, даже по скорости выигрыш максимум в 1 такт. Не стоит оно того.
В Z80 и сделали относительный переход +127 -128, и меньше двух байт его не сделаешь, а делать сверхкороткий относительный переход нет смысла из-за нерационального расхода оптокодов.
Речь не про Z80, а про 8080. Конечно в z80 вставлять сверхкороткий относительный переход некуда уже было, а вот в i8080 вместо условных коллов вполне. Как вариант, можно было сделать условный джамп на 1 инструкцию (1-4 байта) или просто префикс условного выполнения.
Необходимость относительного перехода -32768...+32768 вызывает сомнение т.к. 64 кб можно улететь не туда куда надо из-за арифметики.
это проблемы программиста.
Косвенный (короткий) вызов подпрограммы, теоретически возможен,, но на практике будет медленнее чем обычный вызов подпрограммы
косвенный нужен, если адрес подрограммы вычисляется. Сейчас call hl реализуется либо через push+jp (hl) или через call __call_hl.
А про z80n можно почитать в вике на сайте zx spectrum next.
Система команд i8080 очень далека от совершенства, особенно, если рассматривать с точки зрения разработчика компиляторов с языков высокого уровня. По себе могу сказать, что условные возвраты и условные call'ы используются крайне редко. Очень не хватает инструкций смещения стека (add sp,), получения адреса переменной в стеке (lea hl,sp+), загрузка/запись из/в стек по указателю со смещением (ld a,(sp+)), индексации с переменным смещением (ld a,(hl+b)), а так же call hl. Лучше бы вместо условных возвратов, длинных джампов и коллов, они бы сделали: условный относительный переход на 1-9 байт вперед (смещение в коде инструкции), относительный переход на -128...+127, относительный переход на -32768...+32768, абсолютный переход, косвенный переход (на адрес в регистре), относительный call, абсолютный call, косвенный call, а так же инструкции загрузки регистров со смещением (пусть только положительным) относительно PC.
В процессоре gbz80 (который от z80 только мнемоники и таблицу cb имеет) ряд этих инструкций добавлен.
А вот z80 мало что унаследовал весь этот бардак (почему группу загрузок регистр-регистр нельзя было в начало опкодов поместить — тогда бы nop сама собой получилась, push af сохраняет аккумулятор как msb, но при этом он в остальных инструкциях имеет код 7, соответствующий младшему регистру в паре: ld a,a имеет код 0177). Плюс дополнил рядом бесполезных блочных инструкций. Кто-нибудь когда-нибудь использовал otdr и indr? А инструкция neg нахера нужна, когда есть cpl и inc a, исполняющиеся примерно за то же время?
Не так давно Zilog выпустила процессор с расширенным набором команд. Там появились инструкции LEA rr,ii+d и LD rr,(gg). Но Zilog не была бы сама собой, если бы не наворотила глупостей (имхо), например инструкция PEA ii+d (push effective address). Я так и не смог придумать ей полезного применения, а пишу под eZ80 с 2013 года (на z80 стаж с 1993, где-то). А вот реально нужных инструкций не добавилось…
Разработчики ZX Spectrum Next пошли еще дальше в с маразмом в системе команд процессора Z80N. Они тупо последовательно добавили в таблицу ed нужные с их точки зрения инструкции. То, что при этом их кодировка не соответствует существующей, их, похоже, меньше всего волновало, а это скажется на количестве логики. Там, где можно было получить 4 инструкции, они добавили одну (mul d,e; хотя в z180 есть набор mlt ss). Есть инструкция зеркалирования битов аккумулятора (так себе идея, проще было через «внешнее устройство» сделать), своп половин аккумулятора (реально полезно при выводе BCD чисел), barrel shifter, который двигает DE на B бит… Но вишенка на торте — это инструкция push nn. Эти нехорошие люди придумали nn хранить в коде инструкции в big endian! Из-за них мне пришлось реализовывать отдельный релокейшн в GNU binutils (BFD, Assembler, Ld) — два дня ковырялся.
Как разработчик могу объяснить почему все так:
1. Линукс точится преимущественно для серверов. Поддержка игровых контроллеров вообще за энтузиастами.
2. Когда какой-то разработчик устройства сталкивается с проблемой, то он пишет разработчику ОС. Чем больше разработчиков или чем они значительней (багрепорт от интел будет рассмотрен в первую очередь) пишет, тем быстрее проблема решается. Как думаете, под какую ос делают больше устройств?
Итак, производители игровых контроллеров в первую очередь пишут дрова для окон. Для линукса они их не пишут, за редким исключением. Поэтому, баги системы так и остаются неисправленными.
Что вам следует сделать:
1. зайти сюда bugzilla.kernel.org и написать баги по каждому случаю, предоставив логи ядра и прочую информацию. Когда начнется переписка, то активно ее поддерживать.
2. исправить самостоятельно, отправить патч в багзиллу или в почтовую рассылку. Этот метод быстрее.
Посмотрите простейший компилятор ассемблера. А лучше сразу редактор двоичных файлов.
Главное не сложность/простота компилятора, а простота программы на этом языке и качество создаваемого компилятором кода.
Вашим сервисом не пользуюсь, так как заправляюсь только на Лукойле.
Имхо, это глупость банков (или мир, visa, mastercard...), что не поддерживается корректировка замороженных средств.
Патриотическая идея типа импортозамещения очень благоприятно влияет на экономику. Вместо того, чтобы покупать конечные продукты соседей, страна покупает оборудование и технологии, с помощью которых сама начинает делать эти продукты. Да, по началу чувствуется недостаток, но потом, местные производители наверстывают. Типичный пример — сыр. Раньше было полно импортного, а наш был суррогатом частенько. Сейчас же очень много нормальных сыров появилось… С электроникой аналогично, только все намного дольше…
Если апстрим перекрыт, то у вас все равно будет поддержка, только фичи не так скоро появляться будут. А потом полностью перекрыть апстрим не выйдет, все равно найдутся способы доставания исходников, пусть даже через дип.почту. А вот поддержку проприетарного ПО вы через дип.почту не организуете.
Ну если только thumb2. В ARMv4 там у каждой инструкции было поле для условия (неразумное решение, имхо).
ну разработчики i8080 не думали же о том, как обезопасить программистов от call 0 или call 65535. Так же и тут. У арма, например, основная масса переходов — относительные. И это мне нравится! Кстати, линк регистр тоже классная штука. Вообще, в thumb2 очень много красивых инструкций, например, ITE.
Там с совместимостью проблем нет (она полностью сохранена). Там с головой разработчиков проблемы. Если бы они использовали стандартный для z80 подход к проектированию набора инструкций, то логики на новые инструкции ушло бы меньше. Гимору разработчикам компиляторов тоже. Ну вот зачем было у push nn хранить данные в обратном порядке?!? Все равно она сначала считает во временный 16-ти битный регистр, а потом уже запушит его в стек. Они думали, что проц будет читать побайтно?!? ХА! В классическом z80 даже этот временный регистр есть, если память не изменяет, WZ называется (он недоступен программно). Кроме того, полная длина инструкции push nn 4 байта (2 опкод и 2 данные), это тоже самое, что ld rr,nn; push rr!!! Кроме того, даже по скорости выигрыш максимум в 1 такт. Не стоит оно того.
это проблемы программиста.
косвенный нужен, если адрес подрограммы вычисляется. Сейчас call hl реализуется либо через push+jp (hl) или через call __call_hl.
А про z80n можно почитать в вике на сайте zx spectrum next.
В процессоре gbz80 (который от z80 только мнемоники и таблицу cb имеет) ряд этих инструкций добавлен.
А вот z80 мало что унаследовал весь этот бардак (почему группу загрузок регистр-регистр нельзя было в начало опкодов поместить — тогда бы nop сама собой получилась, push af сохраняет аккумулятор как msb, но при этом он в остальных инструкциях имеет код 7, соответствующий младшему регистру в паре: ld a,a имеет код 0177). Плюс дополнил рядом бесполезных блочных инструкций. Кто-нибудь когда-нибудь использовал otdr и indr? А инструкция neg нахера нужна, когда есть cpl и inc a, исполняющиеся примерно за то же время?
Не так давно Zilog выпустила процессор с расширенным набором команд. Там появились инструкции LEA rr,ii+d и LD rr,(gg). Но Zilog не была бы сама собой, если бы не наворотила глупостей (имхо), например инструкция PEA ii+d (push effective address). Я так и не смог придумать ей полезного применения, а пишу под eZ80 с 2013 года (на z80 стаж с 1993, где-то). А вот реально нужных инструкций не добавилось…
Разработчики ZX Spectrum Next пошли еще дальше в с маразмом в системе команд процессора Z80N. Они тупо последовательно добавили в таблицу ed нужные с их точки зрения инструкции. То, что при этом их кодировка не соответствует существующей, их, похоже, меньше всего волновало, а это скажется на количестве логики. Там, где можно было получить 4 инструкции, они добавили одну (mul d,e; хотя в z180 есть набор mlt ss). Есть инструкция зеркалирования битов аккумулятора (так себе идея, проще было через «внешнее устройство» сделать), своп половин аккумулятора (реально полезно при выводе BCD чисел), barrel shifter, который двигает DE на B бит… Но вишенка на торте — это инструкция push nn. Эти нехорошие люди придумали nn хранить в коде инструкции в big endian! Из-за них мне пришлось реализовывать отдельный релокейшн в GNU binutils (BFD, Assembler, Ld) — два дня ковырялся.
1. Линукс точится преимущественно для серверов. Поддержка игровых контроллеров вообще за энтузиастами.
2. Когда какой-то разработчик устройства сталкивается с проблемой, то он пишет разработчику ОС. Чем больше разработчиков или чем они значительней (багрепорт от интел будет рассмотрен в первую очередь) пишет, тем быстрее проблема решается. Как думаете, под какую ос делают больше устройств?
Итак, производители игровых контроллеров в первую очередь пишут дрова для окон. Для линукса они их не пишут, за редким исключением. Поэтому, баги системы так и остаются неисправленными.
Что вам следует сделать:
1. зайти сюда bugzilla.kernel.org и написать баги по каждому случаю, предоставив логи ядра и прочую информацию. Когда начнется переписка, то активно ее поддерживать.
2. исправить самостоятельно, отправить патч в багзиллу или в почтовую рассылку. Этот метод быстрее.
Главное не сложность/простота компилятора, а простота программы на этом языке и качество создаваемого компилятором кода.