gavr_sas
214 subscribers
2.67K photos
183 videos
28 files
781 links
JB пропаганда
Download Telegram
Я в Сербии, на конфе по котлину.
Вот основные тейки.
Котлин крута, действительно пытаемся сейчас откреститься бирки языка для андройда.
Жаба перестала стагнировать и начала копировать наши фичи, нельзя останавливаться.
Kotlin не ассоциируется у людей с JetBrains, некоторые даже думают что это язык гугла, и это очинь плоха, в самом JB также Kotlin Team существует весьма отдельно от остальных.

После выхода 2.0, с новым, переписанным с нуля фронтендом, будет куда проще реализовывать новые фичи, и развивать язык дальше.
👍3
Богдан
🥰1
2
Чисто смолтолкеры 19того века
gavr_sas
Штош можно меня поздравить, я официально в Wasmе, скоро будут про него посты.
Первый пост общий хелло ворлд.

Конкретно сам Wasm это спецификация виртуальной машины, вот она https://webassembly.github.io/spec/core/

Каждый браузер сам её у себя реализует, тут все как с js.

Виртуальная машина стековая, то бишь в отличии от регистровых у нас есть только стек, шото кладем шото берем, а потом бам, юзаем инструкцию которая все все вертит и кладет обратно результат.
Например
push 2
push 3
// на стеке 2, 3
add
// на стеке 5



Что представляет из себя Wasm по факту:

Это бинарь с байткодом для виртуальной машины, типа всего 4 i32, i64, f32, f64
Все что можно делать это писать внутри функции, и экспортировать какие нибудь из них.
Снаружи, например из js(но не только) можно инициализировать Wasm модуль(скорее всего скачав его через fetch API), достать оттудова функции которые экспортирует модуль и вызвать с аргументами.

#wasm
gavr_sas
Первый пост общий хелло ворлд. Конкретно сам Wasm это спецификация виртуальной машины, вот она https://webassembly.github.io/spec/core/ Каждый браузер сам её у себя реализует, тут все как с js. Виртуальная машина стековая, то бишь в отличии от регистровых…
Почему только числа?

В процессоре тоже только числа, все логично, привязавшись к какой-нибудь конкретной реализации типов вроде String получится менее универсально, может для скорости мы хотим аски таблицу, а у нас токо UTF-8(в JVM), так что хотите строки, будьте добры предоставить свою реализацию, держы инты, не потеряй.
#wasm
Ухх, в ним конфе дисскусия о Wasm на час.

Так то из-за того что Wasm токо спецификация то у него полно реализаций:

1) 3 браузера - Safari(JSCore), Chromium(V8) и Mozilla(SpiderMonkey)
Тут основные отличия пока в том что хром умеет оптимизировать отдельные кусочки, а мозила оптимизирует полученный Wasm целиком.

2) Binaryen — тулчейн для компиляции В Wasm, то есть если у вас есть язык и вы хотите добавить ему Wasm таргет компиляции, то это для оно. На выходе тут сильно оптимизированный Wasm, на входе обычный Wasm или контрол флоу граф(около AST).
Компилирует паралельно в многа потоков, оптимизация многопроходная, упрощенный пример: в результате первого прохода 2 ^ 2 оптимизировалась до 2 * 2, а в результате второго до 2 + 2

То есть Binaryen — этакий LLVM для Wasm, он содержит в себе большое количество отдельных тулзов вроде merge, который скрещивает много wasm бинарей в один, но в том числе тут есть и интерпретатор, но есть результат можно запускать.

На нем работают AssemblyScript и Grain, это яп с единственным таргетом компиляции — Wasm.

Вот можно глянуть ужаснуться на все проходы оптимизации https://github.com/WebAssembly/binaryen/tree/main/src/passes

Важно заметить что Binaryen пилят не рандомные опенсорс чуваки, а сам Wasm комитет.

3) wasmtime это конкретно рантайм, им можно взять .wasm бинарь и запустить на локальной машине.
Поддерживает WASI(WebAssembly System Interface) — главный способ колить из Wasm системные вызовы

Чисто запускатель васма вне веба.

4) Emscripten — еще один компилятор в Wasm, специфицирующийся на C/C++, но вообщем то на самом деле он работает с LLVM IR, поэтому может сожрать любой яп, компилятор которого может этот IR выплюнуть, например Swift.
Emscripten также делает тонны оптимизаций прогоняя под капотом Binaryen и Closure(оптимизатор js -> js)

То есть это LLVM IR -> Binaryen -> Wasm

#wasm
осторожно, golang эволюционирует
🔥1
монополистам привет, остальным соболезную





ну лан, это java конфа https://twitter.com/intellijidea/status/1709485694245069151/photo/1
😁1
профессора юзают жутко кривые фолс позитив негатив чекеры на AI текст(
🤔1
Forwarded from gavr
typical NIASILATOR from C++ dev perspective
Совершенно пропустил этот нейрошедевр
Увидел в новую фичу TS switch(true) (ага) и обнаружил что у меня все еще нету примеров для control flow, добавил.

Эта палочка это и if и switch и expression и statement
This media is not supported in your browser
VIEW IN TELEGRAM
MaterialMaker в Godot
делаем вселенную из шума
а у миня теперь есть собственный локальный compiler explorer >_<
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Отличная UX идея для нейрокартинок, болдом, цветом и шрифтом самого текста назначают разные типы веса каждому токену
просто котята