rust-gc
starlark-rust
rust-gc | starlark-rust | |
---|---|---|
10 | 9 | |
913 | 621 | |
- | 2.4% | |
3.9 | 9.8 | |
7 months ago | 12 days ago | |
Rust | Rust | |
Mozilla Public License 2.0 | Apache License 2.0 |
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.
rust-gc
-
loxcraft: a compiler, language server, and online playground for the Lox programming language
rust-langdev has a lot of libraries for building compilers in Rust. Perhaps you could use these to make your implementation easier, and revisit it later if you want to build things from scratch. I'd suggest logos for lexing, LALRPOP / chumsky for parsing, and rust-gc for garbage collection.
-
What would be your programming language of choice to implement a JIT compiler ?
There's nothing stopping you from doing that in Rust. See rust-gc for an example of a GC implemented in Rust. Another example is mozjs, which is Rust bindings to SpiderMonkey. The GC there is implemented in C++, but it shows how you'd structure wrapper types for GC'd pointers in Rust so that you can use them safely, even with all the "ugliness" of a browser-grade GC.
-
Spotting and Avoiding Heap Fragmentation in Rust Apps
One can have a GC as a library, https://github.com/Manishearth/rust-gc
-
Hey Rustaceans! Got a question? Ask here (7/2023)!
The ones I am aware of are gc and broom. None will be as simple to use as the one in old Rust as userland implementations don't have the benefit of first-class integrated compiler support.
-
Chris Lattner on garbage collection vs. Automatic Reference Counting (2017)
Rust has rust-gc, which is an attempt to add opt-in GC over Rust's more traditional automatic memory management. It's a neat project, but I'm not sure where it's actually being used.
-
I have programming skills! I am good at dealing with programs!
Inb4 "already exists": the question is about making it convenient, not just imlementing the behavior.
-
how hard is rust for a javascript programmer?
There is also a library implementation of garbage collection for Rust, made by someone from the Rust core team.
-
Is this the correct way to think about Rust? Correct me if I am wrong about anything.
Yep! And I'd actually fully agree those are garbage collection, there's also a crate by Manish which does """real""" garbage collection—https://github.com/Manishearth/rust-gc
-
Garbage Collection Question.
I don't know that I'd say it "works" - it's never a technique I've needed to use myself, but it's the approach taken by e.g. https://github.com/Manishearth/rust-gc
-
Microsoft Rust intro says "Rust is known to leak memory"
Anyway, I found something recent that implements "rc" but in terms of tracing: https://github.com/Manishearth/rust-gc/ . Maybe useful for projects involving graphs of objects.
starlark-rust
-
What config format do you prefer?
I haven't seen anyone mention starlark yet. It's something I want to play with as a config language.
-
loxcraft: a compiler, language server, and online playground for the Lox programming language
Aside from these, if you want some inspiration for a production-grade language built in Rust, you might want to go through the source code of Starlark and Gluon.
-
Launch HN: Moonrepo (YC W23) – Open-source build system
There is also a Rust implementation of Starlark as a starting point https://github.com/facebookexperimental/starlark-rust
To add to everyone else, please don't use YAML. Starlark is great _precisely_ because it is a readable, well known (nearly Python) language that is limited at the same time (no unbounded for loops, no way to do non-deterministic things like get the current time or `random()`).
-
Benchmarking Starlark against other embedded scripting languages
This is a follow-up to Benchmarking mlua/rlua/rhai - Rust embedded scripting languages from 4mo ago; I just added the new Starlark implementation from Meta to the benchmark posted by @aleksru.
-
The Perfect Configuration Format? Try TypeScript
The Rust implementation has it as an experimental extension (https://github.com/facebookexperimental/starlark-rust/blob/m...)
-
Making an interpreter for variable length byte-code, any way to use enums for this and not just a big u8?
u/ndmitchell has been working on a Starlark interpreter. He wrote up a blog post with some thoughts about different interpreter styles. He found that in his case using fixed sized instructions was about the same as byte-encoded ones, but compiling the AST to closures was also about the same performance as well, and doesn't need an AST->bytecode compiler.
-
Can i use rust to write my compiler??
As mentioned in other comments, type system features like algebraic data types (that Rust has) are really helpful. If you want a small-but-real example of a compiler in Rust (with an optimizer etc) then the starlark-rust compiler is good.
-
Zellij – A Terminal Workspace and Multiplexer Written in Rust
If your Rust program needs a more complicated configuration (conditionals, access to APIs and so on), also look at Facebook's Starlark parser and tooling[1]. Starlark is a subset of Python used by Bazel, Buck and a few other projects.
[1]: https://github.com/facebookexperimental/starlark-rust
-
New version of Rust Starlark, an implementation of a deterministic Python-like language
The Facebook post gives a nice overview. It also links out to the home page for the project at https://github.com/facebookexperimental/starlark-rust/, which has an introduction and links to what Starlark is, the crates.io link, the docs.rs link etc.
What are some alternatives?
rfcs - RFCs for changes to Rust
cue - CUE has moved to https://github.com/cue-lang/cue
unsafe-code-guidelines - Forum for discussion about what unsafe code can and can't do
cue - The home of the CUE language! Validate and define text-based and dynamic configuration
tokio - A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
.tmux - 🇫🇷 Oh my tmux! My self-contained, pretty & versatile tmux configuration made with ❤️
its_rusty - learning rust
wasmtime - A fast and secure runtime for WebAssembly
Primes - Prime Number Projects in C#/C++/Python
zellij - A terminal workspace with batteries included
ixy-languages - A high-speed network driver written in C, Rust, C++, Go, C#, Java, OCaml, Haskell, Swift, Javascript, and Python
Tmuxinator - Manage complex tmux sessions easily