VB стал знаменитым благодаря легендарной функции edit-and-continue, позволявшей разработчикам запускать программы, находить ошибки, исправлять их и продолжать работать с новым кодом. Это разительно отличалось от почти всех остальных известных человечеству сред программирования, вынуждавших разработчиков компилировать работу заново и после каждого изменения начинать снова.
Это называется repl, и присутствует у достаточно большого количества языков. Как минимум это есть у ruby и lisp.
The Messages app will add new tools to warn children and their parents when receiving or sending sexually explicit photos.
When receiving this type of content, the photo will be blurred and the child will be warned, presented with helpful resources, and reassured it is okay if they do not want to view this photo. As an additional precaution, the child can also be told that, to make sure they are safe, their parents will get a message if they do view it. Similar protections are available if a child attempts to send sexually explicit photos. The child will be warned before the photo is sent, and the parents can receive a message if the child chooses to send it.
Messages uses on-device machine learning to analyze image attachments and determine if a photo is sexually explicit. The feature is designed so that Apple does not get access to the messages.
Судя по упоминанию машинного обучения, а так же анализе отправляемых файлов, становится понятно, что это не просто список хешей, загружаемых на устройство.
Using another technology called threshold secret sharing, the system ensures the contents of the safety vouchers cannot be interpreted by Apple unless the iCloud Photos account crosses a threshold of known CSAM content. The threshold is set to provide an extremely high level of accuracy and ensures less than a one in one trillion chance per year of incorrectly flagging a given account.
Only when the threshold is exceeded does the cryptographic technology allow Apple to interpret the contents of the safety vouchers associated with the matching CSAM images. Apple then manually reviews each report to confirm there is a match, disables the user’s account, and sends a report to NCMEC. If a user feels their account has been mistakenly flagged they can file an appeal to have their account reinstated.
А здесь прямо говорится, что при превышении некоего показателя, система в штатном режиме будет загружать файлы яблоку, чтобы там сотрудники в ручном режиме просматривали чужие данные.
А вот описание вполне конкретного события, когда пострадавший и обвинённый был одним лицом.
At the beginning of the mark phase, all root segments (as described above) are pushed on the stack by GC_push_roots. (Registers and eagerly processed stack sections are processed by pushing the referenced objects instead of the stack section itself.) If ALL_INTERIOR_PTRS is not defined, then stack roots require special treatment. In this case, the normal marking code ignores interior pointers, but GC_push_all_stack explicitly checks for interior pointers and pushes descriptors for target objects.
сборщик Бёма вынужден догадываться сам и поэтому не гарантирует отсутствия утечек. Т.е., строго говоря, он некорректен.
У вас есть возможность выделять память, с указанием того, где находятся указатели.
Ради отсутствия внешних зависимостей и лёгкости встраивания в основную программу на C.
Полагаю, что в данном случае усилия, направленные на встраивание, полностью бы окупились использованием библиотечного кода, за счёт экономии ручной реализации умных указателей.
А чем другие языки принципиально отличаются? Они лишь добавляют синтаксического сахара и возможных гарантий.
Управление памятью полностью самописное?
Да, полностью самописное.
Чем продиктован данный выбор, в частности почему проект не написан на c++ с использованием библиотечной реализации(std) или же какой-то другой библиотеки, даже для си?
Здравый смысл подсказывает, что общие накладные расходы в случае подсчёта ссылок и трассирующей сборки мусора примерно одинаковы, однако при подсчёте ссылок они более равномерно «размазаны» и гарантированно не дают подвисаний
Сборщик мусора делает перемещение объектов бесплатным, но к сожалению, найти статью в которой это обсуждалось не могу.
А чтобы делать тесты, нужно было реализовать оба варианта. Я этого не делал.
Есть библиотечные реализации, думаю подключить библиотеку будет проще уже проделанной работы.
Не совсем понял вопрос.
Насколько помню, передать из go в си интерфейс невозможно.
Следовательно, он не мешает довести счётчик ссылок до нуля и уничтожить объект, поэтому сам рискует оказаться висячим. Так что пытаться разыменовывать слабый указатель опасно.
Здесь имелся в виду пример с приведением слабого указателя к сильному в синтаксисе умки, а так же вопрос борьбы с висячими указателями, чтобы, например, при удалении одного объекта, и создании нового, нельзя было бы по старому указателю обратится к новому объекту.
Довольно низкоуровневый скриптовый язык получается.
Альтернативы вроде трассирующего сборщика мусора отпугнули непредсказуемыми задержками при исполнении программ.
Были тесты, или это просто общее впечатление?
Элегантность статической типизации оказалась слегка подпорченной. Однако такое решение стало выглядеть неизбежным, как только в язык добавились ещё и интерфейсы в стиле Go — это вообще царство динамической типизации, ибо фактический тип содержимого интерфейса становится известен лишь при исполнении программы. В общем, в язык Umka пришёл RTTI (runtime type information) и уходить больше не собирается.
Насколько часто придётся сталкиваться Object(или местным аналогом)?
Это даёт замечательные преимущества при использовании Umka как встраиваемого скриптового языка в связке с C/C++.
На чём основан такой выбор? Это полностью прозрачно, или как в go некоторые вещи недоступны из си кода?
Разумеется, по своей природе слабый указатель может оказаться висячим и указывать на уже освобождённый блок памяти, поэтому слабые указатели в Umka запрещено разыменовывать напрямую. Вместо этого его нужно сначала привести к сильному указателю. Висячий слабый указатель при таком приведении превратится в null.
Большая часть статьи довольно очевидна(как минимум, когда начинаешь об этом размышлять, но вот реализация слабых указателей практически не описана — как именно они устроены и как ими пользоваться в умке.
Баги, связанные с утечками памяти и висячими указателями, приходилось исправлять на протяжении всей работы.
Управление памятью полностью самописное? Были ли проблемы с использованием уже освобождённой памяти? Если да, то как они были решены?
Язык уже полностью готов, или ещё есть вещи, всё ещё не реализованые? Какие преимущества перед существующими языками, кроме скорости компиляции? Что с библиотеками, например, если я захочу обрабатывать js, то какие у меня варианты, кроме написания парсера с нуля? Знаком ли автор с ocaml?
Скорее всего, письмо отправляется тем же запросом, что и выполнена регистрация, что не говорит ни о чём, так как при доступе к почтовому ящику можно сменить пароль.
Автомобильная отрасль почему-то не умерла. Фармацевтика — тоже. Нефтянка живее всех. И еще тысячи отраслей. А ИТ — умрет, ну да.
Автомобиль проектируется один раз и идёт в серию. Веб сайты состоят из кучи доработок под конкретного заказчика. Похоже, что тут ещё и программисты работы лишатся, так как доработки станут очень дорогими.
Именно так.
И будет полный застой, стаганация, когда любое развитие утонет в бюрократии и нежелании иметь с ним дело.
И он будет гарантировано безопасным, потому что 100500 раз проверен.
Зато если какую-то дыру найдут, то она будет размером в полинтернета.
Сейчас автопроизводитель в принципе не сможет поставить непроверенный ремень
Кто играет роль автопроизводителя в случае сайта?
государство отозвало сертификацию и все быстренько массово побежали обновляться
Все — это кто? Заказчик, который ничего в компьютерах не понимает? Это уже требует в компанию сисадмина, хотя бы после каждой уязвимости.
Переустановка openssl будет стоить четверть нового сайта?
Openssl — один из самых выгодных для вас примеров, поскольку напрямую от его api не зависят почти все сайты. Хотя даже тут будут проблемы, когда сайт работает под дистрибутивом, который уже EOL, а в поддерживаемом дистрибутиве уже несовместимый интрпретатор/рантайм. Как насчёт уязвимого cms/фреймворка?
да что ж вы всё в это тыкаетесь-то…
Потому что «никогда такого не было, и вот опять». Примеров на любой вкус более чем достаточно.
И внезапно окажется, что выгоднее выпускать совместимые версии, переход на которые можно осуществить плавно, чем делать как с тем же питоном, когда у вас одновременно живет 2 версии просто потому, что с одной на другую перейти нормально невозможно.
Похоже, вы не понимаете, но причиной выхода несовместимых версий является врождённый изъян, поправить который не сломав совместимость не получится либо слишком сложно. В этом случае этот врождённый недостаток так и будет кочевать из версии в версию, и спустя двадцать лет придётся лепить тот же костыль, что и раньше, а параллельно нужно будет создавать новый язык, который будет на конкурировать как с оригиналом(python 2), так и конкурентами(ruby, perl). При этом, он не унаследует ни популярности, ни библиотек от оригинала. Нужно ли говорить, насколько сильно это замедлит развитие отрасли?
Опять-таки, у вас не возникнет ситуации когда внезапно надо быстро-быстро перейти с 5-ой версии php на 8-ую
В момент вступления закона это и произойдёт и вопрос как раз и будет в том, кто это переживёт.
когда сайт, например, банка работает на заведомо уязвимом софте
Интересно, и где это такой банк? Вы точно ничего не путаете?
оставляем всё как есть, ведь это же так хорошо и безопасно
Ситуацию нужно исправлять, а не разламывать всё до основания.
Про этот список я в курсе, но в нем из мейнстримовых дистрибутивов только Slackware и Gentoo, остальные же либо собираются энтузиастами, либо спроектированы для решения специфических задач на устройствах с ограниченными вычислительными ресурсами. Доля пользователей у них мала, новички обычно идут на Ubuntu, Mint, ElementaryOS, Kali, Fedora или Manjaro.
Если человек осознанно выбирает инит, то он уже достаточно грамотен для того, чтобы его не смущал не самый популярный дистрибутив. Из популярных, вы ещё devuan забыли.
Ну т.е. для вас это нормально, да? Что вы приходите на сайт и ваши данные сразу оттуда утекают?
Вы фантазируете или ищите реальное решение? Про монополизацию рынка вы ничего не сказали, как и про то, есть ли у кого-то ресурсы на регулярный аудит. Что насчёт принуждения использовать какой-то продукт лишь по тому, что они дали взятку проверяющим? Без ответов на все эти вопросы, начинать всё это нет никакого смысла.
А насчет затрат… Вон, государство посчитало и решило, что без ремней ездить в машинах — нельзя.
Установка ремня безопасности будет стоить хотя бы четверть стоимости машины? Как отреагирует экономика страны с таким регулированием?
что интернет, что софт — это огромная куча устаревшего, заведомо кривого
Не мне это рассказывать, я это и сам знаю.
И только государство может заставить компании заботиться о безопасности.
Вы забыли сказать «сильное и заинтересованное в этом». Или не видите, как легко подкупают чиновников?
Кроме того, без некоторых вещей, например языка с обратной совместимостью, cms, фреймворка, у вас ничего не удастся, так позволить себе регулярную доработку смогут единицы, и начинать нужно с этого.
Вы идеализируете капитализм. То, что пользователи резко озаботятся приватностью, так же фантастично, как и то, что люди вдруг захотят помогать друг другу — для этого нужно весьма интенсивное внешнее воздействие.
А здесь прямо говорится, что при превышении некоего показателя, система в штатном режиме будет загружать файлы яблоку, чтобы там сотрудники в ручном режиме просматривали чужие данные.
А вот описание вполне конкретного события, когда пострадавший и обвинённый был одним лицом.
Почему вручную? У вас же интерпретатор есть, пусть сам считает.
Здесь сказано
Полагаю, что в данном случае усилия, направленные на встраивание, полностью бы окупились использованием библиотечного кода, за счёт экономии ручной реализации умных указателей.
Чем продиктован данный выбор, в частности почему проект не написан на c++ с использованием библиотечной реализации(std) или же какой-то другой библиотеки, даже для си?
Есть библиотечные реализации, думаю подключить библиотеку будет проще уже проделанной работы.
Насколько помню, передать из go в си интерфейс невозможно.
Здесь имелся в виду пример с приведением слабого указателя к сильному в синтаксисе умки, а так же вопрос борьбы с висячими указателями, чтобы, например, при удалении одного объекта, и создании нового, нельзя было бы по старому указателю обратится к новому объекту.
Были тесты, или это просто общее впечатление?
Насколько часто придётся сталкиваться Object(или местным аналогом)?
На чём основан такой выбор? Это полностью прозрачно, или как в go некоторые вещи недоступны из си кода?
Большая часть статьи довольно очевидна(как минимум, когда начинаешь об этом размышлять, но вот реализация слабых указателей практически не описана — как именно они устроены и как ими пользоваться в умке.
Управление памятью полностью самописное? Были ли проблемы с использованием уже освобождённой памяти? Если да, то как они были решены?
Язык уже полностью готов, или ещё есть вещи, всё ещё не реализованые? Какие преимущества перед существующими языками, кроме скорости компиляции? Что с библиотеками, например, если я захочу обрабатывать js, то какие у меня варианты, кроме написания парсера с нуля? Знаком ли автор с ocaml?
И будет полный застой, стаганация, когда любое развитие утонет в бюрократии и нежелании иметь с ним дело.
Зато если какую-то дыру найдут, то она будет размером в полинтернета.
Все — это кто? Заказчик, который ничего в компьютерах не понимает? Это уже требует в компанию сисадмина, хотя бы после каждой уязвимости.
Openssl — один из самых выгодных для вас примеров, поскольку напрямую от его api не зависят почти все сайты. Хотя даже тут будут проблемы, когда сайт работает под дистрибутивом, который уже EOL, а в поддерживаемом дистрибутиве уже несовместимый интрпретатор/рантайм. Как насчёт уязвимого cms/фреймворка?
Потому что «никогда такого не было, и вот опять». Примеров на любой вкус более чем достаточно.
Похоже, вы не понимаете, но причиной выхода несовместимых версий является врождённый изъян, поправить который не сломав совместимость не получится либо слишком сложно. В этом случае этот врождённый недостаток так и будет кочевать из версии в версию, и спустя двадцать лет придётся лепить тот же костыль, что и раньше, а параллельно нужно будет создавать новый язык, который будет на конкурировать как с оригиналом(python 2), так и конкурентами(ruby, perl). При этом, он не унаследует ни популярности, ни библиотек от оригинала. Нужно ли говорить, насколько сильно это замедлит развитие отрасли?
В момент вступления закона это и произойдёт и вопрос как раз и будет в том, кто это переживёт.
Интересно, и где это такой банк? Вы точно ничего не путаете?
Ситуацию нужно исправлять, а не разламывать всё до основания.
Установка ремня безопасности будет стоить хотя бы четверть стоимости машины? Как отреагирует экономика страны с таким регулированием?
Не мне это рассказывать, я это и сам знаю.
Вы забыли сказать «сильное и заинтересованное в этом». Или не видите, как легко подкупают чиновников?
Кроме того, без некоторых вещей, например языка с обратной совместимостью, cms, фреймворка, у вас ничего не удастся, так позволить себе регулярную доработку смогут единицы, и начинать нужно с этого.