theBeamBook
artichoke
theBeamBook | artichoke | |
---|---|---|
7 | 31 | |
3,044 | 2,995 | |
- | 0.2% | |
5.8 | 9.0 | |
about 1 month ago | 6 days ago | |
Erlang | Rust | |
Creative Commons Attribution 4.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
theBeamBook
- Ask HN: Programming Courses for Experienced Coders?
-
Erlang/OTP: Garbage Collector
It's my understanding the state of the art in observing JVM-based applications is a combination of using thread dumps, gc logs, thread activity visualizations. Thread dumps give us a snapshot of the the name of the thread, its current running state (waiting, blocked, etc), and the stacktrace of the work its currently doing. GC logs give you a record of when and how much garbage was collected and Thread activity visualizations show you the timeline of thread moving between different running states.
The BEAM gives you the ability to see the bottlenecks in your system, via the REPL (in real time!)
It has world-class introspection built in that gives you the power to observe and manipulate your running application through a REPL.
The BEAM has hundreds of features like this, because the BEAM is more of an OS than and VM.
I get it, you're a JVM expert, but the BEAM is more than a check list of optimizations that on paper the JVM can do.
I strongly suggest, before the next time you comment on an BEAM VM vs.JVM debate, please consider watching https://www.youtube.com/watch?v=JvBT4XBdoUE, "The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019"
and reading https://github.com/happi/theBeamBook " an attempt to document the internals of the Erlang runtime system and the Erlang virtual machine known as the BEAM."
Best of luck!
-
Lunatic is an Erlang-inspired runtime for WebAssembly
it does. values are immutable in the BEAM, not at language level.
The impact of bugs is minimized by compartmentalization. This is done from the lowest level where each data structure is separate and immutable [1]
But you can simulate mutability with stateful processes.
Directly from Joe Armstrong: https://joearms.github.io/published/2013-11-21-My-favorite-e...
[1] https://github.com/happi/theBeamBook/blob/3971e8e2d09e367670...
-
Log 2022-10-19
theBeamBook repo
-
Will project loom make java concurrency comparable to erlang's?
On a side-note, if you're really interested in grokking the BEAM itself, https://github.com/happi/theBeamBook is a very good resource that delves deeper into the internal working of BEAM. Regardless of whether you use it, it's a fun read!
-
How are processes scheduled
Check the https://github.com/happi/theBeamBook/blob/master/chapters/scheduling.asciidoc
-
What is your opinion on Ada? Have you used it for embedded development? When did you use it?
Did you find this? As far as I know, it is the best resource: https://github.com/happi/theBeamBook
artichoke
-
Ruby 3.2.0 Is from Another Dimension
The java based ruby, removes the GIL, which provides us real multithreading.
Truffleruby is "A high performance implementation of the Ruby programming language, built on GraalVM." If you prefer there is even a rust based ruby https://github.com/artichoke/artichoke
again, IMO, the microbenchmark, doesn't matter. What matters is the problem domain, whole stack and the whole "speed", including development, deployment and etc, and for some domains, ruby is the best and fast choice.
- Rust front-end merged in GCC trunk
-
Lunatic is an Erlang-inspired runtime for WebAssembly
Not to be pedantic but Ruby has webassembly support, still won't work on the BEAM.
https://github.com/artichoke/artichoke
- Why does Rust have parameters on impl?
-
When I look at ruby code written in C, I have one thought. Why isn't Ruby rewritten in Crystal, which would make use of parallelism?
Artichoke is a Ruby interpreter written in Rust.
- Official /r/rust "Who's Hiring" thread for job-seekers and job-offerers [Rust 1.64]
-
Should I be concerned about the quality of crates.io?
The owner of this reserved crate is Ryan Lopopolo who seems to indeed work on artichoke
-
Announcing strftime-ruby v1.0.0, a pure Rust no-std implementation of Ruby 3.1.2 Time#strftime method.
I believe it was written mainly for/within the context of artichoke, which is an implementation of Ruby written (mostly) in Rust. It's a neat project!
- Official /r/rust "Who's Hiring" thread for job-seekers and job-offerers [Rust 1.63]
- Artichoke is a Ruby made with Rust
What are some alternatives?
chat - A telnet chat server
truffleruby - A high performance implementation of the Ruby programming language, built on GraalVM.
monkey-rust - A dancing with interpreter and compiler
Kubewarden - Kubewarden is a policy engine for Kubernetes. It helps with keeping your Kubernetes clusters secure and compliant. Kubewarden policies can be written using regular programming languages or Domain Specific Languages (DSL) sugh as Rego. Policies are compiled into WebAssembly modules that are then distributed using traditional container registries.
www.rust-lang.org - The home of the Rust website
pen - The parallel, concurrent, and functional programming language for scalable software development
slint - Slint is a declarative GUI toolkit to build native user interfaces for Rust, C++, or JavaScript apps.
lychee - âš¡ Fast, async, stream-based link checker written in Rust. Finds broken URLs and mail addresses inside Markdown, HTML, reStructuredText, websites and more!
axum - Ergonomic and modular web framework built with Tokio, Tower, and Hyper
gutenberg - A fast static site generator in a single binary with everything built-in. https://www.getzola.org
substrate - Substrate: The platform for blockchain innovators
slack-morphism-rust - A modern async client library for Rust, supports Slack Web / Events API/Socket Mode and Block Kit.