Size: a a a

2020 October 27

ŹR

Źmićer Rubinštejn in pro.elixir
Можно decimal запихнуть в stdlib по хорошему
источник

AR

Andrew Rudenko in pro.elixir
Alex Bubnov
кстати, тут вроде были любители webassembly, я вчера нашел несколько issue, про фичи для реализации нормальных языков поверх него.
ожидаемо, всё сложно
https://github.com/WebAssembly/design/issues/1252 - continuations
https://github.com/WebAssembly/design/issues/919 - tagged pointers

и, кажется, небезынтересное видео, которое я пока не посмотрел - https://www.youtube.com/watch?v=pq-Pa2Fj4nE россберг про всякое, в том числе про эффекты, через которые предположительно будут continuations
и слайды чисто про continuations, там всё довольно понятно https://github.com/WebAssembly/meetings/blob/master/main/2020/presentations/2020-02-rossberg-continuations.pdf
кмк, куда интереснее (и важнее?) для WASM не имплементация "нормальных" языков, в конце концов платформ / таргетов для них есть, а интероп с хостом / между языками. и там с этим все еще все грустно, interface types уже давно в предложениях, но вроде как-то не особо движется https://github.com/webassembly/interface-types
источник

AB

Alex Bubnov in pro.elixir
Źmićer Rubinštejn
Можно decimal запихнуть в stdlib по хорошему
спорно - они вот только что выкатили 2.0, где удалили дофига депрекейшенов
то есть, они его зачем-то продолжают разрабатывать
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Ну datetime они тоже туда сюда деприкейтят, это не мешает ему быть в стдлиб
источник

AB

Alex Bubnov in pro.elixir
Andrew Rudenko
кмк, куда интереснее (и важнее?) для WASM не имплементация "нормальных" языков, в конце концов платформ / таргетов для них есть, а интероп с хостом / между языками. и там с этим все еще все грустно, interface types уже давно в предложениях, но вроде как-то не особо движется https://github.com/webassembly/interface-types
вот в эту часть я не смотрел вообще, потому что не понимаю проблематики, она очень wasm-специфична.
меня еще вот какая вещь интересует - есть ли у них планы на поддержку кодогенерации байткода в рантайме. может ли либа наэмитить нового байткода и вызвать его.
источник

AR

Andrew Rudenko in pro.elixir
Alex Bubnov
вот в эту часть я не смотрел вообще, потому что не понимаю проблематики, она очень wasm-специфична.
меня еще вот какая вещь интересует - есть ли у них планы на поддержку кодогенерации байткода в рантайме. может ли либа наэмитить нового байткода и вызвать его.
какая либа? рантаймы динамические конечно существуют, генери, запускай, пожалуйста https://github.com/bytecodealliance/wasmtime
источник

AR

Andrew Rudenko in pro.elixir
собственно и не только байткод можно выполнять динамически, но и aot-компиляцию в машинный код в рантайме запускать
источник

AR

Andrew Rudenko in pro.elixir
https://github.com/bytecodealliance/lucet как раз через cranelift работает например https://github.com/bytecodealliance/wasmtime/tree/main/cranelift
источник

AB

Alex Bubnov in pro.elixir
Andrew Rudenko
какая либа? рантаймы динамические конечно существуют, генери, запускай, пожалуйста https://github.com/bytecodealliance/wasmtime
что-то я не уверен, что донес мысль.
на примерах:
в нативном коде можно написать исполняемого кода в аллоцированную память и сделать туда call/jump
в beam можно in-memory собрать ast модуля и скомпилить его в память, после чего вызвать функцию из него
в jvm можно пихнуть шмат байткода в Classloader.defineClass, и опять же дергать полученные функции.

в wasm что-то подобное в планах есть, ты не в курсе?
источник

AR

Andrew Rudenko in pro.elixir
ну сам wasm это просто спецификация, в основном на формат байткода и его семантику
источник

AR

Andrew Rudenko in pro.elixir
есть разные рантаймы с разными характиеристиками
источник

AR

Andrew Rudenko in pro.elixir
ссылки что я тебе скинул это рантаймы / компиляторы, которые позволяют запускать / компилировать wasm код динамически
источник

AB

Alex Bubnov in pro.elixir
м, кажется я понял, куда смотреть - это должно быть частью wasi
источник

AR

Andrew Rudenko in pro.elixir
Alex Bubnov
м, кажется я понял, куда смотреть - это должно быть частью wasi
wasi это интерфейс во внешний мир из рантайма wasm, при чем тут он?
источник

AB

Alex Bubnov in pro.elixir
Andrew Rudenko
wasi это интерфейс во внешний мир из рантайма wasm, при чем тут он?
так рантайм же такой же внешний мир для исполняемого кода
источник

AR

Andrew Rudenko in pro.elixir
Alex Bubnov
что-то я не уверен, что донес мысль.
на примерах:
в нативном коде можно написать исполняемого кода в аллоцированную память и сделать туда call/jump
в beam можно in-memory собрать ast модуля и скомпилить его в память, после чего вызвать функцию из него
в jvm можно пихнуть шмат байткода в Classloader.defineClass, и опять же дергать полученные функции.

в wasm что-то подобное в планах есть, ты не в курсе?
вот продолжая твои примеры:

> в jvm можно пихнуть шмат байткода в Classloader.defineClass, и опять же дергать полученные функции.

(один вариант) в wasm ты можешь пихунть шмат кода в интерпретатор и дерать полученные функции. типа так https://pkg.go.dev/github.com/bytecodealliance/wasmtime-go
источник

AR

Andrew Rudenko in pro.elixir
Andrew Rudenko
вот продолжая твои примеры:

> в jvm можно пихнуть шмат байткода в Classloader.defineClass, и опять же дергать полученные функции.

(один вариант) в wasm ты можешь пихунть шмат кода в интерпретатор и дерать полученные функции. типа так https://pkg.go.dev/github.com/bytecodealliance/wasmtime-go
там вот прям примеры
источник

AB

Alex Bubnov in pro.elixir
ну да, именно это, только в wasi, чтобы рантайм гарантированно выставлял апи к самому себе
источник

VK

Vyacheslav Konovalov in pro.elixir
источник

DP

Dmitry Ponyatov in pro.elixir
а ничего вместо Application.fetch_env не завезли чтобы можно было конфигурацию не по одному ключу выдергивать, а сразу кучку параметров?
источник