All streams
Search
Write a publication
Pull to refresh
4
0
Send message
Ответственность за содержание обычно несет автор, а не сторонние сайты с которых получен материал.
Нельзя одновременно возмущаться подобными «беспределами», но в то же время выкладывать такие беспредельные картинки глобусов.

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

Вы или приведите зеленую штриховку в соответствие — или возмущайтесь беспределами властей.
А насколько в питоне исключения быстро работают? В некоторых языках, например жава, не рекомендуется использовать исключения для штатных ситуаций, потому что это работает не очень быстро. В питоне, получается, такого нет.
Потому, что когда выпускают новый uefi, то старый bios перестают производить, и он становится фактически как лампочка с нестандартным цоколем. Какое-то время ее эксплуотировать конечно можно, если уже есть цоколь, который она включена. Но потом меняют и цоколь и лампочку.

Примерно то же самое будет с uefi. Например. Там по спецификации дрова к железу могут идти сразу uefi-ные, вшитые в устройство. И их не надо устанавливать, они «устанавливаются» вместе с втыкнутым устройством, а винда или линукс просто их использует. Пойдут такие устройства, люди с биосом, которые захотят эти устройства использовать, будут вынуждены купить материнку с uefi
Если будет невозможно просто взять и прописать бут-сектор — люди сделают груб, у которого stageN ставится в ntfs, и все перехватывает.
Ну любой программист вам скажет, что если «оно работает», это еще не значит, что под капотом все чисто.
С биос груз прошлого тормозит развитие. Решения, которые там применены, себя изжили. Много лет инженеры пытались тянуть лямку обратной совместимости, но со временем груз становится все тяжелее. В какой-то момент это становится слишком дорого.

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

Насколько понимаю, ничего из этого сделано не было.

Кроме того, могли бы и мониторить хоть иногда свои домейны, особенно новые, и прекращать их обслуживание в случае чего.
jit внутри c++ это жава и шарп

А если серьезно, jit внутри не может быть by design, потому что это много чего сломает. Например, это сломает указатели на функции.
Кстати, для решения задачи перевода из инфиксной нотации в постфиксную есть «алгоритм сортировочной станции» придуманый Дейкстрой. Думаю, построение дерева с рекурсивным спуском — более сложный и потенциально более глючный метод.
Насколько понял, это защитит от ударной волны (вопрос дифракции волн, пока не учитываем), но практически не защитит от шрапнели.
Иными словами, даже если бы мн17 был оборудован такой системой, кабину может быть и не оторвало, но шрапнель все равно не оставила бы шансов.

Если я все хорошо помню, проект СОИ предполагал создание таких плазменных зон на пути полета ракет с ЯО. Резкий перепад условий среды, по мнению разработчиков, должен был вызывать деформацию и разрушение летящей ракеты. Если так — неясно чем разработка боинга отличается от наработок 1983 года. Идея-то одна — создать лазерами неоднородность среды.
Тоже пользовался динднс, пока он работал. Свет клином сошелся на нем потому, что он есть практически во всех роутерах, а во многих роутерах — только он один. Этот факт наверняка существенно увеличил их базу клиентов.

В итоге перешел на freedns. Его нету в роутерах, но свои плюсы сервис имеет. Обновление днс осуществляется http(s) запросом, по крону раз в 5 минут.
Это все происходит потому, что преподаватель при постановке задачи озвучил меньше требований, чем предполагал. На эту тему даже был анекдот про прапрщика и воду с газом или без газа. Конечно, возможен вариант, что некоторые требования подразумевались актуальными по умолчанию, а мы тут просто видим вырваную из контекста беседу.

Надо было сразу сказать: хочу чтобы оно компилилось на всем что можно, и занимало как можно меньше памяти. Возможно даже надо указать конкретные платформы, наборы библиотек, компиляторы и ключи запуска. Или может стоит оставить ключи запуска на усмотрение студента. Потому что необязательно требования такие всегда. Например, на спектруме применял следующий прием: угол два пи это 256 «градусов», и вычисляем синус по табличке. Работало очень быстро, но в памяти надо было держать эту таблицу.

Опять же, если изначально стоит задача написать приложение под конкретную платформу, и там уже есть нужные либы — то зачем повторять их функционал? А если все равно повторяешь их функционал — зачем тогда вообще использовать либы? Могут быть случаи где этому есть разумное обьяснение, а могут быть случаи, где нет.
Прочитал камент про то, что в С нет ссылок.
Всегда компилил g++ и не задумывался про это.

Получается, что да.
Есть у меня еще 1 идея — надо будет ее попробовать. Оптимизирует ли компилятор обращение через указатель на локальную переменную. Я как попробую — отпишу, если будет положительный результат.

Пока тест не провел — соглашусь с вами. Считаем, что так сделать не получится.
Есть, просто его назвали «Передача параметра по ссылке».

При достаточном уровне оптимизации происходит так:

«The compiler ignores any register definitions and allocates registers to variables and temporary values by using an algorithm that makes the most efficient use of registers.»

это из ARM Optimizing C/C++ Compiler v5.0 от ti

Эксперимент повторять лень, но суть в том, что ABI должно выполняться только при внешних вызовах. Вызовы внутри можно оптимизировать, и компилятор это делает, если его попросить.
Вы вопрос вы рассмотрели вырвано из контекста.

Когда-то ковырял какой-то компилятор от техас инструментс, который вполне нормально справлялся с такой задачей — передаешь по ссылке две переменные, они ложатся в разные регистры, внутри функции эти регистры меняются определенным образом, а после возврата из функции используются. То есть в полной мере — возврат из функции двух значений через регистры. Так делал он при ненулевом уровне оптимизации. При нулевой он все данные гонял через стек. Правда ковырял его в режиме EABI, а не ABI.
Это означает, что там есть люди, которые всерьез винят в кризисе спекулянтов. Вот это действительно феноменально.
Именно то что вы дали — это же оно и есть. Вы дали ссылку на 19 разных реализаций abi.

«Как вы результат компиляции собиратесь из нескольких модулей собирать, если вы в результате оптимизации испортили конвенцию о вызовах?»

Во-первых, конвенцию о вызовах надо соблюдать только когда зовешь внешние либы. Ну и когда их компилишь. А внутри программы допустима полная анархия. Тот же clang умеет делать link time optimization, например. А в старом паскале, насколько помню, был обратный по сравнению с С порядок параметров, изза чего были проблемы с передачей переменного числа аргументов. При этом вызовы в библиотеки он дергал по тому abi, который нужен этим библиотекам, разумеется. Во-вторых компилятор может добавлять адаптеры в нужное abi. Т.е., у функции получается несколько точек входа. gcc, вероятно так не делает, но я когда-то эксперементировал с каким-то компилятором под arm, и он такое вытворял.

А стек больше не делают не потому что нет ресурсов. Просто больше ненужно. Где-то на хабре писали. что тот же apache преспокойно работает со стеком 32кб. И все равно кэшируется он кусками по сколько-то (64) байт. И все равно при вызове функции адрес возврата пишется в стек — значит он все равно будет закэширован. Но это конечно рассуждение на уровне «мне так кажется». Я не знаю как это корректно померять.
Ясно. Все понятно кроме одного — почему в вызывающую функцию нельзя возвратить два значения в двух регистрах, без использования стека? зачем одну из переменных понадобится класть в стек?
Понимаю так: abi — это интерфейс, а не реализация. Т.е., нет никакого единого стандарта для всех компиляторов и всех платформ. Есть некоторое кол-во подходов, которые зарекомендовали себя, как хорошие, но не более. В каждом компиляторе своя реализация. плюс еще есть оптимизация и прагмы, которыми можно настроить компиляцию. Необязательно, что после глубокой оптимизации аби сохранится. Хотя в нормальном компиляторе будет документирована что он сделает в оптимизациях и что нет.

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

Корректно измерить быстродействие на сегодняшних cpu не представляется возможным, т.к. время выполнения команд недокументировано. Даже на архитектурах, где заявлено что одна команда выполняется за 1 такт, на практике это бывает не всегда так.
Измерять экономию памяти — скучно. Там и так ясно, что экономии или нет, или мало. Выше высказали предположение, что реальная экономия могла быть на старых cpu до 90ых годов. Этот тезис весьма убедителен.

Information

Rating
Does not participate
Registered
Activity