LINUX.ORG.RU

Сообщения Ygor

 

Fil-C — компилятор для языков C и C++, гарантирующий безопасную работу с памятью

Новости — Разработка
Группа Разработка

Цель разработки компилятора – полная совместимость с синтаксисом языков Си и С++ при обеспечении полной безопасности работы с памятью. Заявляется, что для использования достаточно пересобрать существующий код, так уже компилируются и работают bzip2, zip, pcre и ncurses. С незначительными модификациями поддерживается сборка OpenSSH, OpenSSL, CPython, SQLite, Lua, Curl, Lynx, jpeg6b, zsh, xzutils и simdutf.

( читать дальше... )

>>> Подробности

 , , ,

Ygor
()

Проект TrapC развивает Си-подобный язык, безопасно работающий с памятью

Новости — Разработка
Группа Разработка

Проект развивает Робин Роу (Robin Rowe), бывший профессор компьютерных наук, принимавший участие в комитетах по развитию стандартов С и С++, в своё время создавший графический редактор Cinepaint, использовавшийся при создании некоторых голливудских фильмов, и POSIX-библиотеку libunistd для Windows. Соучредителем компании Trasec выступает Габриэль Пантера (Gabrielle Pantera), занимавшая руководящий пост в компании Disney.

Из особенностей:

  • Проверки выхода за границы массива. В TrapC применяется фундаментально иной способ работы с указателями и специальный механизм перехвата ошибок на основе обработчиков исключений (trap).

  • Проверки use after free.

  • Наличие GC.

  • Выделение памяти через new. *alloc и free нет.

  • Явная инициализация нулями.

  • Строгая типизация.

Исходный код компилятора для TrapC планируют открыть в 2025 году.

>>> Подробности

 , ,

Ygor
()

Steam заблокировали

Форум — Talks

Пока 3 страницы, но вы же знаете как они блочат https

https://tass.ru/ekonomika/22076043

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

 , , , ,

Ygor
()

В коде Winamp обнаружено нарушение лицензии GPL

Форум — Talks

В опубликованных на днях исходных текстах мультимедийного проигрывателя Winamp обнаружено заимствование кода, распространяемого под лицензиями GPL и LGPL. В частности, среди кода Winamp присутствовали файл fir_proc.cpp, кодировщик BladeMP3, плагин in_vorbis и компоненты генератора парсеров GNU Bison, распространяемые под лицензией GPL. Кроме того, в составе поставлялся изменённый код библиотеки libdiscid 0.6.2, распространяемой под лицензией LGPLv2.1. В репозитории Winamp также найдены бинарные сборки открытых библиотек libogg и vorbis, добавленные без указания лицензии.

https://www.opennet.ru/opennews/art.shtml?num=61947

Код winamp открыт под пропиетарной лицензией. Ждём реакции заинтересованных лиц.

 ,

Ygor
()

Сто тридцать тысяч рабочих мест Почты России переходят на alt linux

Форум — Talks

Но не переходят, а только планируют, в течении трёх лет. А там или ишак или падишах, как в известной байке. О том, будет ли переведено существующее ПО на линукс в котором ведётся работа об этом новость не сообщает.

 ,

Ygor
()

Rust в Linux - все плохо

Форум — Talks

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

Ушедший сопровождающий, который подключился к проекту 4 года назад, является сотрудником компании Microsoft и автором экспериментального драйвера с реализацией ФС EXT2, написанного на языке Rust

Экспериментальный драйвер очень нужной фс от работоспособного разраба:

В этом году Алмейда внёс в репозиторий Rust-for-Linux 17 коммитов

В качестве причины ухода упоминается нехватка сил и энтузиазма, которые когда-то были для реагирования на некоторые бредни нетехнического характера (nontechnical nonsense).

У них там какой-то филиал двача досок /pr/ и /gay/

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

автор файловых систем ext2/ext3/ext4, который сравнил инициативу Rust-for-Linux c попыткой заставить всех принять религию Rust.

Ну и в конце место для традиционной перемоги: барен что-то там переписал на расте.

Насладиться техническими подробностями нового выпуска и немного охренеть с поведения растоманов тут.

 , ,

Ygor
()

О сортировке пирамидой

Форум — Development

В книге Седжвика. «Фундаментальные алгоритмы на С++» предлагается такая сортировка:

template <class Item>
void fixDown(Item *a, int k, int N)
{
    while (2 * k <= N)
    {
        int j = 2 * k;
        if ((j < N) && (a[j] < a[j + 1]))
            j++;
        if (a[k] > a[j])
            break;
        std::swap(a[k], a[j]);
        k = j;
    }
}

template <class Item>
void heapsort(Item *a, int l, int r){
    int k, N=r-1+1;
    Item *pq = a+1-1;
    for(k=N/2;k>=1;k--)
    fixDown(pq, k, N);
    while (N>1)
    {
        std::swap(pq[1], pq[N]);
        fixDown(pq, 1, --N);
    }    
}

И всё бы хорошо, сортирует полюбому быстро за O(N lgN), памяти дополнительной не требует, но есть неприятный нюанс: Если сгенерить такой массив, такой функцией.

int len=2300000;
auto array=generantion_array(0, 23000000,len);

int *generantion_array(int min, int max, int len)
{
    std::default_random_engine generator;
    std::uniform_int_distribution<int> distribution(min, max);
    int *array = new int[len];
    for (int i = 0; i < len; i++)
    {
        array[i] = distribution(generator);
    }
    return array;
}

То получается пара элементов не отсортирована:

180 10

Почему так происходит?

 , ,

Ygor
()

Компания Microsoft передала разработку проекта Mono сообществу Wine

Форум — Talks

То есть дефакто mono все:

Microsoft продолжит сопровождение более современного форка Mono Runtime, включённого в состав кодовой базы открытой платформы .NET. Планируется постепенно перевести на данный форк компоненты проектов Microsoft, остающиеся завязанными на Mono. Компания Microsoft также заявила, что рекомендует пользователям приложений, использующих Mono, перейти на использование общей платформы .NET, включающей Mono Runtime.

Подробности.

 , ,

Ygor
()

Rust входит недостаточно глубоко и быстро в ядро linux по мнению Linus Torvalds

Форум — Talks

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

Подробности.

 , , ,

Ygor
()

Инновационная консоль на Эльбрусе

Форум — Talks

Здравствуйте любители опенсорса и им сочувствующие. Во исполнении майских указов президента в нашей стране создаётся инновационная игровая консоль с хитами пятнадцатилетней давности, такими, как Portal, GTA 3, GTA Vice City, Doom 3, Half-Life 2, Quake 4, CS Go.

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

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

место для клоуна тут ↓

 , перемога,

Ygor
()

Инновационная IDE от сбербанка

Форум — Talks

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

  1. Cloud версия - це vscode. Ибо нефиг.

  2. Десктопная версия це IDEА.

В десктопной версии сбербанковской ide заявляется поддержка java, kotlin, spring boot.

Декларируется в этой gigaide (скромненько так) поддержка этих языков и фреймворков на уровне ultimate idea. Заявляется поддержка субд: оракл, постргре, mysql и sqlite.

Все эти фичи вынесены в отдельный плагин Amplicode, который можно использовать и с idea community.

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

Кого интересуют подробности: линк тут.

 , , , ,

Ygor
()

gpu.cpp — библиотека для вычислений на GPU

Новости — Разработка
Группа Разработка

gpu.cpp — лёгкая переносимая библиотека для вычислений на графических сопроцессорах. Для работы требуется только компилятор C++, поддерживающий стандарт С++17 (разработчики почему-то настаивают на clang), и сама библиотека. Заявляется работа на любых устройствах, поддерживающих Vulkan, Metal, или DirectX.

( читать дальше... )

>>> Подробности

 ,

Ygor
()

Отличное образование в КФУ

Форум — Talks

Много букв.

Вкратце о 4 годах обучения в сём прекрасном заведении:

1С/html/css/c#/sql. Хотя конечно вспоминая своё обучение - парню ещё повезло.

 , ,

Ygor
()

Eclipse(читай ibm) и другие конторы помельче форкнули vscode

Форум — Talks

Со своим магазином дополнений. Как сейчас модно и с клиентом в браузере, но в отличии от МС требует логин.

Вангую эклипс закопают в ближайшем будущем и все сопутствующие проекты типа ардуинки перейдут на vscode. Да и jetbrains ожидают не лучшие времена.

Мало ли кого интересуют подробности.

Чтобы не плодить топики:

А тем временем jetbrains показывает пользователям из РФ фигу: https://habr.com/ru/news/825756/

 , , ,

Ygor
()

ActiveX в емакс потек

Форум — Talks

Тут давеча парень прибегал рассказать нам какой плохой и несвободный vs code.

Другой такой же мим, рассказывал, о страшных дополнениях в vs code.

А тем временем свободный emacs:

Дополнение: Опубликован пример org-файла, открытие которого в Emacs вызывает выполнение shell-команд. Для эксплуатации уязвимости также можно прикрепить подобный файл к email и он будет выполнен при предпросмотре в Emacs.

   #+LINK: shell %(shell-command-to-string)
   [[shell:touch ~/hacked.txt]]

Отличие от vs code в том, что подобный скрипт будет выполняться не в песочнице, а в системе пользователя с правами пользователя.

Как и следовало ожидать, rm -rf ~/ в письме - для пользователей этой штуки - «это другое, понимать надо». А то чтобы запросить запуск левого скрипта с почты - это «ненужно».

 , ,

Ygor
()

В GNU Guile 3.0.10 отказались от скобок

Форум — Talks

openet

Из интересного, скобки больше не нужны, по крайней мере большая часть, было:

(define (factorial n)
       (if (zero? n)
          1
          (* n (factorial (- n 1)))))

   (display (factorial 5))
   (newline)

стало:

   define : factorial n
     if : zero? n
         . 1
         * n : factorial (- n 1)
   display : factorial 5 
   newline

Вызывается пояснительная бригада, почему так. ИМХО стало читабельней хоть и похоже на питон.

 , ,

Ygor
()

Дедушке дали премию

Форум — Talks

Эндрю Таненбаум стал обладателем премии ACM Software System Award, ежегодно присуждаемой Ассоциацией вычислительной техники (ACM), наиболее авторитетной международной организацией в области компьютерных систем. Премия присуждена за создание операционной системы MINIX, которая использовалась при обучении нескольких поколений студентов принципам разработки операционных систем и внесла вклад в разработку широко распространённых операционных систем, включая Linux.

Награда ACM Software System Award ежегодно вручается за разработку программных систем, оказавших определяющее влияние на отрасль, внеся в обиход новые концепции или раскрывших новые области коммерческого применения. Размер премии 35 тысяч долларов США. В прошлые годы премии ACM были присуждены проектам GCC и LLVM, и их основателям Ричарду Столлману и Крису Латнеру. Премией также были отмечены такие проекты и технологии, как UNIX, Java, Apache, Mosaic, WWW, Smalltalk, PostScript, TeX, Tcl/Tk, RPC, Make, DNS, AFS, Eiffel, VMware, Wireshark, Jupyter Notebooks, Berkeley DB, seL4, и Eclipse.

https://www.opennet.ru/opennews/art.shtml?num=61427

Из всего этого списка уважаемых товарищей и граждан непонятно, а Eiffel этому то за что?

 , , ,

Ygor
()

Rust модель памяти

Форум — Talks

Наткнулся на хабре на пост о rust и несколько прифигел:

fn main() {
    let original_owner = String::from("Something");
    let new_owner = original_owner;
println!(&quot;{}&quot;, original_owner);

}

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

Попробовал такое же на java и никакой ошибки нет, код компилируется и выполняется:

    public static void main(String[] args) {
        String original_owner = new String("Something");
        String new_owner = original_owner;
        System.out.println(original_owner);
    }

Отсутствие классов отдельный рофл: давайте получать экземляры объектов не на уровне класса, а на уровне метода, в который напихаем ещё пачку методов и побольше. Зато нет наследования, да.

 

Ygor
()

UNSAFE - расходитесь тут не на что смотреть

Форум — Talks

более 24 тысяч (19.11%) используют ключевое слово «unsafe»

А ведь говорили, что раст закопали, однако врали?

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

Отмечается, что в большинстве случаев использование «unsafe» обусловлено вызовом кода, написанного на других языках или обращения к библиотекам на С/C++. Пакетом с наибольшим числом вызовов в контексте «unsafe» признан развиваемый компанией Microsoft crate-пакет windows, являющийся обвязкой над API платформы Windows. Данный пакет насчитывает 36 млн. загрузок.

Источник: опенет.

 ,

Ygor
()

Даже микрософт шлёт патчи на RUST

Форум — Talks

А ты ещё до сих пор сишник - линуксоид.

Мало ли кому интересны подробности:

Уэдсон Алмейда Фильо (Wedson Almeida Filho) из компании Microsoft предложил для обсуждения в списке рассылки разработчиков ядра Linux вторую версию патчей с набором обвязок над подсистемой VFS, предназначенных для разработки на языке Rust файловых систем, работающих в режиме только для чтения. Вместе с обвязками опубликовано два созданных на их основе драйвера с реализацией файловых систем ext2 и tarfs, работающих в режиме только для чтения. В отличие от ранее доступной реализации ФС Ext2 на языке Rust - ext2-rs, новый вариант работает на уровне ядра (модуль rust_ext2), а не в пространстве пользователя. Драйвер rust_ext2 содержит около 700 строк кода на Rust и может использоваться в качестве отправной точки для разработки более сложных реализаций ФС, таких как Ext4.

Файловая система tarfs позволяет монтировать архивы в формате Tar в виде файловой системы. Драйвер использует прикреплённый к tar-файлам индекс для навигации по файлам внутри архива без перебора всего содержимого.

Отдельно развивается ещё одна ФС на языке Rust, которая использует предложенный слой абстракций, - PuzzleFS. PuzzleFS предназначена для размещения изолированных контейнеров и обладает такими возможностями, как эффективное хранение дублирующихся данных, возможность прямого монтирования, повторяемая сборка образов, очень быстрая сборка и монтирование образов, возможность использования необязательной промежуточной стадии для преобразования (canonicalization) образов, необязательность полных проходов по дереву ФС при использовании многослойной структуры и наложение изменений в стиле casync. 

опеннет

 , ,

Ygor
()

RSS подписка на новые темы