1.84K subscribers
3.27K photos
130 videos
15 files
3.55K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
😁21🎉1
😢18😁15🥰21🤡1💯1
19🍌3👍1🥰1
#meme (и чуть-чуть #politota)
❤️💛🤍💚💙
#традиции #religion
🤣17😁5❤‍🔥2🥰1
Блог*
#prog #rust #dotnet #article Автор продолжил заниматься своим проектом и планирует превратить его в полноценный бекенд для кодогенерации. С момента выпуска Compiling Rust for .NET, using only tea and stubbornness! автор опубликовал три заметки, рассказывающие…
#prog #rust #dotnet #article

Автор продолжил работать над этим кодогенератором и в процессе получил добро на Google summer of code для своего проекта и обзавёлся спонсорством на Github. Особенно впечатляет, что он этого добился в возрасте 18 лет.

Автор также опубликовал несколько заметок с отчётом о прогрессе в деле компиляции Rust в .NET CIL (Common Intermediate Language — ассемблерно-подобный платформо-независимый язык, в который компилируются языки на .NET — C#, F# и Visual Basic).

My experience working on rustc_codegen_clr - half a year retrospective (январь 2024) — как и следует из названия, автор суммирует прогресс до этой точки. Автор делится впечатлениями от работы с rustc, а также упоминает осложнения, связанные с представлением обобщённых типов в .NET.

Stack unwinding, ARM and CIL trees (март 2024) — упоминает об изменениях в кодогенераторе. Для раскрутки стека, что неудивительно, удалось задействовать нативные исключения .NET. Так автор рассказывает об изменении внутреннего представления CIL (переход от плоского списка к AST), а также о некоторых заковыках, связанных с типами нулевого размера (которые .NET-рантайм просто не поддерживает) и с разной семантикой кастов из чисел с плавающей точкой в целочисленные в Rust и CIL.

Rust to .NET compiler - Progress update (май 2024) — рассказывает о (частичной) реализации поддержки аргументов командной строки (необходимой для реализации кода, генерируемого #[test]), а также о некотором безразличии .NET-рантайма к знакам целочисленных типов и о секретном третьем типе с плавающей точкой внутри него.

Statically Sized, dynamically sized, and other (июнь 2024) — повествует об истории одного крайне неприятного бага, связанного с деталями реализации std::fmt, и о том, как в этом проявилось неправильная компиляция. Спойлер: из-за extern type тип с неизвестным размером ≠ тип с рантайм-размером.
🔥12👍1
👍203
Блог*
😒🤚 Иметь друзей 😏👉 Иметь друзей
😒🤚 Кушать булочки
😏👉 Кушать булочки
🤡12🌚5
Forwarded from Data Funk
Желание разложить что-угодно по группам на основе схожести - естественная черта человека, но задача кластеризации данных, почти всегда как плохое ТЗ для дизайнера - делай красиво, а не красиво не делай. Какой алгоритм кластеризации хороший, а какой плохой если сравнивать результат их работы не с чем? Джон Клейнберг из Корнеллского университета в 2002 году сформулировал три критерия хорошего алгоритма кластеризации:

- Масштабная инвариантность. Если все расстояния между точками умножить на положительное число, это не должно менять результат работы хорошего алгоритма.
- Насыщенность/разнообразие. Хороший алгоритм способен создать любую произвольную комбинацию разбиения входных данных.
- Согласованность. Если уменьшаем внутрикластерные расстояния и/или увеличиваем межкластерные, алгоритм должен возвращать то же разбиение на кластеры.
🤔2👍1
Forwarded from Data Funk
В своей работе "Теорема о невозможности кластеризации" Клейнберг доказывает что никакой алгоритм кластеризации не может удовлетворять одновременно трем названным условиям. Масштабная инвариантность нарушается когда для определения принадлежности точки к кластеру используются относительные расстояния с заданным порогом. Насыщенность нарушается, если заранее фиксируется количество кластеров. Согласованность нарушается когда для объединения точек в кластеры используются абсолютные расстояния не превышающие некоторый порог. С другой стороны указанные критерии это субъективное представление о красивом/полезном разбиении множества на группы, с которым необязательно соглашаться. Максимально понятно, без математики, теорема описана тут.
👍2
Forwarded from шитпостинг.
👍20😁13🌚3🔥1
#prog #rust хайлайты:

Поменяли реализацию сортировки. Те же гарантии по сложности, та же или более хорошая производительность (в зависимости от типа), а самое заметное — новая сортировка теперь может (пусть и не гарантированно) отлавливать случаи, когда реализация Ord на самом деле не реализует отношение порядка, и сообщать об этом через панику с соответствующим сообщением.

Также уменьшает объём генерируемого кода для нестабильной сортировки, увеличивает для стабильной и за счёт организации кода быстрее компилируется на многоядерных системах.
🔥16👍1
Я не пользуюсь тиндером.

Мне и так знакомо, каково это, когда люди тебе не отвечают
👍3😢1
ノ┬─┬ノ ︵ ( \o°o)\
😁16🥰1
Я не выкладываю селфи. Не хочу, чтобы мои папищеки влюблялись и страдали от неразделённой любви.
🤡18😁9💩6❤‍🔥3🤮2🍌2🤨1
🌚19👏31
#prog #article

Adventures in CI land, or how to speed up your CI

Большинство описанного в статье не привязано к конкретному языку.
👍3👎2