gcpp
cargo-script-mvs
gcpp | cargo-script-mvs | |
---|---|---|
12 | 9 | |
912 | 35 | |
- | - | |
10.0 | 5.3 | |
about 5 years ago | 6 days ago | |
C++ | Rust | |
MIT License | GNU General Public License v3.0 or later |
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.
gcpp
- C++: Deferred_ptr, Deferred_heap, Deferred_allocator
-
What feature would you like to see in C++26?
static reflection and pattern-matching, as everyone is saying, but I'd also like to see a garbage-collecting smart-pointer in the standard library similar in design to Herb Sutter's deferred_ptr
-
Rust went from side project to world’s fastest growing language
There are definitely fringe edge cases where C++ can do things that Rust simply cannot, currently.
I'm thinking of things like Herb Sutter's deferred_heap (https://github.com/hsutter/gcpp) that give you GC-like abstraction. It's pretty cool that this is possible to write in vanilla C++ with decent ergonomics. I tried to make something similar awhile back and hit a wall in terms of making something that would be pleasant to use.
Rust has several on-going experiments with making a nice GC, along with good support for arenas. (If you can use arenas, they're great.)
-
Now the C++ removed garbage collector support, is it still possible the have a global garbage collector in a C++ application?
Check out this library: https://github.com/hsutter/gcpp
-
tracked_ptr - when shared_ptr is not enough
Hm, yeah, that's pretty unclear. My understanding is based off the link to Herb's proposal in the OP, which I understand this to be an evolution of.
-
What do you think will be the future direction for C++ evolution?
Re garbage collection: My understanding was that the standard API was intended for interop with managed languages, not for pure C++ code to use, although I could be mistaken. I don't think garbage collection is entirely a lost cause, for instance Herb Sutter's work, which I think he wants to integrate in Cppfront, would be a great way to do it. Imo, his garbage collection ([1] [2]) could be much better than D or Nim, because it has easily controllable performance characteristics. You don't pay for it if you won't use it, and it's unlikely that libraries you pull in would need it, which is imo what makes programming without the "optional" GC in D and Nim difficult.
- Any guesses as to how C++ will turn out w.r.t. garbage collection?
-
Why do people want a garbage collector in C++?
Herb Sutter
-
New "Java to C++" code converter tool for beginners
Something like gcpp would be quite nice. That and a intelligent scope detector could make use of isolated and local GC when it detects that some objects stays together and have similar lifetime.
cargo-script-mvs
-
This Week in Rust #497
The eRFC was intentionally light on details so the Pre-RFC / IRLO thread and the demo best reflect what we hope to accomplish which are pretty detailed as-is.
-
Rust went from side project to world’s fastest growing language
> A) is easy to write one off scripts that do a job fast, with minimal thinking and effort. I am thinking of Python and Ruby. For me I can write code with high velocity in these languages.
Once I wrap up some other projects, I plan to explore this space a little bit within Rust.
imo the biggest bang for the buck is just having good `#!` support. Probably mid-year I expect to have a Pre-RFC up for single-file cargo packages. See https://github.com/epage/cargo-script-mvs/discussions/15.
A bigger effort is a batteries included, non-zero cost stdlib. I've started writing up my thoughts at https://github.com/ergo-rs/ergo.
For more background on why I think these are important, see https://epage.github.io/blog/2021/09/learning-rust/.
Would love feedback on these ideas and other ways to make Rust easy to use without sacrificing what makes Rust it is.
-
Rust as bash scripting replacement?
This is something I'm interested. Every time I write a bash or Python script, I think "why didn't I do this in Rust?". The first barrier is in the same line as your thoughts which is why I've been investigating the various cargo-script spin-offs and working towards an MVP for a Pre-RFC.
-
Val on Programming: What makes a good REPL?
Something I've been thinking a lot about for Rust is what can and should a REPL experience be for a compiled language (ie what are reasonable compromises).
There seem to be two repls that haven't gotten much traction:
- https://github.com/google/evcxr/blob/main/evcxr_repl/README....
- https://github.com/sigmaSd/IRust
There have been little and big nits that have held me back from wanting to push these further, including
- Bad defaults (having to opt-in to panic handling)
- Command syntax feeling out of place and likely not beginner friendly
- Limits on variable preservation
- Lack of introspection (at least irust as `:type`)
So far I've been punting on wanting to improve this area by instead focusing on polishing up a rust script solution in the hopes of getting it merged: https://github.com/epage/cargo-script-mvs
-
Quick Tip: You don't need to create a new cargo project if you want to test if something works in rust
rust-script is the most up-to-date version I could find. See https://github.com/epage/cargo-script-mvs/discussions/15
-
Creating an Easy Mode for Rust
cargo-script has been forked or reimplemented several times.
-
clap with Ed Page :: Rustacean Station
cargo-script: I've done some initial analysis and recorded my thoughts on what cargo-script in Rust should look like. If people are interested in this or other individual / company on-boarding improvements, I'd love to talk!
-
When not to use Rust?
Fully agree with this though I also feel there is room for experimentation and improvement in this area. I've previously blogged on this and have started researching cargo-script. Hopefully later I'll get to my standard-adjacent library.
What are some alternatives?
sgcl - Smart Garbage Collection Library for C++
cargo-script - Cargo script subcommand
graph_ptr - A smart ptr implementation that can handle cycles, similar to herb sutter's deferred_ptr.
rust-script - Run Rust files and expressions as scripts without any setup or compilation step.
convey - Layer 4 load balancer with dynamic configuration loading
evcxr
pkg-fmt - Metadata to support C++ packaging
IRust - Cross Platform Rust Repl
ergo - std-alternative prototyping / education library
team - CLI working group
NeatReflection - KISS C++20 Type Reflection using IFC files
runner - Tool for running Rust snippets