this post was submitted on 11 Mar 2024
82 points (96.6% liked)

Rust

6005 readers
4 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] Deebster@programming.dev 25 points 8 months ago (2 children)

It looks interesting. While the compiler is written in Rust (a RRIR from Erlang), the code itself runs on the Erlang VM or on JS. Unfortunately, you can't do hot code reloading and I'm curious what/if you have to sacrifice to run on JS.

Their cheatsheet for Rust users might be of interest to others.

[–] autokludge@programming.dev 7 points 8 months ago* (last edited 8 months ago)

While having a quick look through old news:

From June 2021 (v0.16) (https://gleam.run/news/v0.16-gleam-compiles-to-javascript/#how-does-it-work)

Much like the Erlang compiler backend this new JavaScript backend outputs human readable and pretty printed source code. It is now included with the compiler and does not require any extra components to be installed to use it.
Rather than attempting to replicate a subset of Erlang’s actor model Gleam uses the standard promise based concurrency model when targeting JavaScript. While this may be disappointing for some, it means that there is no additional runtime code added. This keeps bundle size small and makes it so code written in Gleam can be called like normal from languages such as JavaScript and TypeScript.

Jan 2024 v0.34 (https://gleam.run/news/v0.34-multi-target-projects/#multi-target-projects) mentions some additional work done to enable multi target projects such as Lustre

[–] devfuuu@lemmy.world 2 points 8 months ago

The guide/tutorial has some specifics about things that are allowed in erlang vs js. There's a few features that don't work completely in one or another.