A process/message visualizer for BEAM nodes: https://github.com/koudelka/visualixir
#elixir #erlang
#elixir #erlang
> In recent years, many language ecosystems have developed automatic code formatters to reduce the mental overhead of code readers and therefore to share code more easily. These tools work by ensuring that all code written in the same language looks the same. Some examples of these tools include gofmt for Go or mix format for Elixir. The Erlang community was lacking a tool like this, so we created a rebar3 plugin just to automatically format code.
> In this article we’ll discuss the history of the Erlang parsing and formatting tools, the challenges of developing a formatter and the resulting tool that we created. Learn how you can use it and customize it to your needs.
#erlang
> In this article we’ll discuss the history of the Erlang parsing and formatting tools, the challenges of developing a formatter and the resulting tool that we created. Learn how you can use it and customize it to your needs.
#erlang
New Gleam website!
For ones who don't know about Gleam yet:
> Gleam is a fast, friendly, and functional language for building safe, scalable systems!
Features:
- Safe: Gleam's powerful static type system helps find and prevent bugs at compile time, long before it reaches your users. It also serves as a productive refactoring tool, enabling programmers to confidently make large changes to unfamiliar code, quickly and with low risk. For problems the type system can't solve (such as your server being hit by a bolt of lightning) the Erlang virtual machine provides well tested mechanisms for gracefully handling failure.
- Friendly: Hunting down bugs can be stressful so Gleam's compiler provides clear and helpful feedback about any problems. We want to spend more time developing features and less time looking for bugs or deciphering cryptic error messages. As a community we want to be friendly too. People of all backgrounds, genders, and experience levels are welcome and must receive equal respect. See our community code of conduct for more.
- Performant: Gleam builds on top of the Erlang virtual machine, a best-in-class runtime that has enabled companies such as WhatsApp, Ericsson, Heroku, and Klarna to provide low-latency services at a global scale. Gleam takes full advantage of the Erlang runtime and adds no overhead of its own, so all Gleam programs are as blazingly fast as their #erlang counterpart.
- Erlang compatible: Gleam makes it easy to use code written in other BEAM languages such as Erlang, #elixir and LFE, so there's a rich ecosystem of thousands of open source libraries for Gleam users to make use of. In return Gleam code can be easily used by programmers of other BEAM languages, either by transparently making use of libraries written in Gleam, or by adding Gleam modules to their existing project with minimal fuss.
https://gleam.run
#gleam
For ones who don't know about Gleam yet:
> Gleam is a fast, friendly, and functional language for building safe, scalable systems!
Features:
- Safe: Gleam's powerful static type system helps find and prevent bugs at compile time, long before it reaches your users. It also serves as a productive refactoring tool, enabling programmers to confidently make large changes to unfamiliar code, quickly and with low risk. For problems the type system can't solve (such as your server being hit by a bolt of lightning) the Erlang virtual machine provides well tested mechanisms for gracefully handling failure.
- Friendly: Hunting down bugs can be stressful so Gleam's compiler provides clear and helpful feedback about any problems. We want to spend more time developing features and less time looking for bugs or deciphering cryptic error messages. As a community we want to be friendly too. People of all backgrounds, genders, and experience levels are welcome and must receive equal respect. See our community code of conduct for more.
- Performant: Gleam builds on top of the Erlang virtual machine, a best-in-class runtime that has enabled companies such as WhatsApp, Ericsson, Heroku, and Klarna to provide low-latency services at a global scale. Gleam takes full advantage of the Erlang runtime and adds no overhead of its own, so all Gleam programs are as blazingly fast as their #erlang counterpart.
- Erlang compatible: Gleam makes it easy to use code written in other BEAM languages such as Erlang, #elixir and LFE, so there's a rich ecosystem of thousands of open source libraries for Gleam users to make use of. In return Gleam code can be easily used by programmers of other BEAM languages, either by transparently making use of libraries written in Gleam, or by adding Gleam modules to their existing project with minimal fuss.
https://gleam.run
#gleam
⚡Breaking news!
JIT for #erlang and #elixir. It would be super-fast now!
https://github.com/erlang/otp/pull/2745
JIT for #erlang and #elixir. It would be super-fast now!
https://github.com/erlang/otp/pull/2745
GitHub
Implement BeamAsm - a JIT for Erlang/OTP by garazdawi · Pull Request #2745 · erlang/otp
This PR introduces BeamAsm, a JIT compiler for the Erlang VM.
Implementation
BeamAsm provides load-time conversion of Erlang beam instructions into native code on x86-64. This allows the loader to ...
Implementation
BeamAsm provides load-time conversion of Erlang beam instructions into native code on x86-64. This allows the loader to ...
An #erlang backend to the OCaml compiler.
So, you can write OCaml and get Erlang bytecode!
You can get the best of two worlds: OCaml's type system and Erlang's awesome virtual machine.
As you can tell, this is highly experimental. But, lack of typing in Erlang is a very hot topic. There are several competing solutions at the moment. See our #gleam posts for more information.
https://github.com/AbstractMachinesLab/caramel
So, you can write OCaml and get Erlang bytecode!
You can get the best of two worlds: OCaml's type system and Erlang's awesome virtual machine.
As you can tell, this is highly experimental. But, lack of typing in Erlang is a very hot topic. There are several competing solutions at the moment. See our #gleam posts for more information.
https://github.com/AbstractMachinesLab/caramel
Elixir v1.11 released
Over the last releases, the #elixir team has been focusing on the compiler, both in terms of catching more mistakes at compilation time and making it faster. Elixir v1.11 has made excellent progress on both fronts. This release also includes many other goodies, such as tighter Erlang integration, support for more guard expressions, built-in datetime formatting, and other calendar enhancements.
During this period, we have also started publishing a series of production cases on our website, featuring Elixir’s usage at Brex, Farmbot, and Heroku, with many more cases coming soon.
Features:
- Tighter #erlang integration
- Compiler checks: application boundaries
- Compiler checks: data constructors
- Compilation time improvements
- config/runtime.exs and mix app.config
- And many others!
https://elixir-lang.org/blog/2020/10/06/elixir-v1-11-0-released/
Over the last releases, the #elixir team has been focusing on the compiler, both in terms of catching more mistakes at compilation time and making it faster. Elixir v1.11 has made excellent progress on both fronts. This release also includes many other goodies, such as tighter Erlang integration, support for more guard expressions, built-in datetime formatting, and other calendar enhancements.
During this period, we have also started publishing a series of production cases on our website, featuring Elixir’s usage at Brex, Farmbot, and Heroku, with many more cases coming soon.
Features:
- Tighter #erlang integration
- Compiler checks: application boundaries
- Compiler checks: data constructors
- Compilation time improvements
- config/runtime.exs and mix app.config
- And many others!
https://elixir-lang.org/blog/2020/10/06/elixir-v1-11-0-released/
Erlang/Elixir NIFs in Nim
Nimler is a library for authoring #erlang and #elixir NIFs in the #nim programming language. It has mostly complete bindings for the Erlang NIF API and some accessories for making writing NIFs easier, including idiomatic functions for converting between Erlang terms and Nim types, and simplifications for using resource objects.
Mostly, Nimler is a minimal, zero-dependency wrapper for Erlang NIF API.
https://github.com/wltsmrz/nimler
Nimler is a library for authoring #erlang and #elixir NIFs in the #nim programming language. It has mostly complete bindings for the Erlang NIF API and some accessories for making writing NIFs easier, including idiomatic functions for converting between Erlang terms and Nim types, and simplifications for using resource objects.
Mostly, Nimler is a minimal, zero-dependency wrapper for Erlang NIF API.
https://github.com/wltsmrz/nimler