OffsetArrays.jl
evcxr
Our great sponsors
OffsetArrays.jl | evcxr | |
---|---|---|
7 | 75 | |
192 | 5,207 | |
1.6% | 2.2% | |
6.0 | 8.6 | |
12 days ago | 11 days ago | |
Julia | Rust | |
GNU General Public License v3.0 or later | 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.
OffsetArrays.jl
-
Why I am switching my programming language to 1-based array indexing.
Well, there is OffsetArrays in Julia, but it has acquired a reputation as a poison pill because most code assumes the 1-based indexing and it's easy to forget to convert the indexing and screw up the code.
-
The Julia language has a number of correctness flaws
Similar correctness issues are a big part of the reason that, several years ago, I submitted a series of pull requests to Julia so that its entire test suite would run without memory errors under Valgrind, save for a few that either (i) we understood and wrote suppressions for, or (ii) we did not understand and had open issues for. Unfortunately, no one ever integrated Valgrind into the CI system, so the test suite no longer fully runs under it, last time I checked. (The test suite took nearly a day to run under Valgrind on a fast desktop machine when it worked, so is infeasible for every pull request, but could be done periodically, e.g. once every few days.)
Even a revived effort on getting core Julia tests to pass under Valgrind would not do much to help catch correctness bugs due to composing different packages in the ecosystem. For that, running in testing with `--check-bounds=yes` is probably a better solution, and much quicker to execute as well. (see e.g. https://github.com/JuliaArrays/OffsetArrays.jl/issues/282)
-
-π- 2021 Day 6 Solutions -π-
You might be interested in OffsetArrays.jl.
- PyTorch: Where we are headed and why it looks a lot like Julia (but not exactly)
-
Why does Julia adopt 1-based index?
Counting starts at one, as do most vector/matrix/tensor indices. If it bothers you too much, see OffsetArrays.jl and Arrays with custom indices.
- some may hate it, some may love it
-
Evcxr: A Rust REPL and Jupyter Kernel
No need for another version, Julia supports custom indices by default. Check out https://docs.julialang.org/en/v1/devdocs/offset-arrays/ and https://github.com/JuliaArrays/OffsetArrays.jl
evcxr
-
Scriptisto: "Shebang interpreter" that enables writing scripts in compiled langs
Emacs didn't invent REPL, and it's common everywhere. For Rust: https://github.com/evcxr/evcxr/blob/main/evcxr_repl/README.m.... But heck, the compiler is reasonably fast enough that any IDE can REPL by compiling the code.
The value here is more in being able to read a script before you run it, then have it run fast, maybe tweaking something here and there. And a compiled script will run 10,000 times faster than LISP, which can be important.
-
Go: What We Got Right, What We Got Wrong
https://github.com/evcxr/evcxr can run Rust in a Jupyter notebook. It's not Golang but close enough.
-
The Hallucinated Rows Incident
The engine uses rust_decimal::Decimal to represent high precision decimal numbers, like the weight property. Serialization of RocksDB keys is done by the storekey crate. To know how Yumi's machine stores diffs, we can now ask- How does storekey serialize rust_decimal? Well, using evcxr to run Rust in Jupyter, the answer is as a null-terminated string:
- TermiC: Terminal C, Interactive C/C++ REPL shell created with BASH
- Exploring Options for Dynamic Code Changes in Rust without Recompilation (hot reloading)
- Go 1.21 will (likely) have a static toolchain on Linux
-
Whatβs an actual use case for Rust
In theory you should be able to create Rust notebooks (Jupyter notebook) using evcxr so maybe some AI, data analysis, prototyping make sense if you aim for good performance in final application (protype in evcxr and use notebook as reference to implement final application in Rust for speed and safety).
-
would you use rust for scripting?
You should check out evcxr
- Nannou β An open-source creative-coding framework for Rust
-
Rust vs. Haskell
There is also implementations of rust REPLs, like the beautifully named evcxr.
What are some alternatives?
StarWarsArrays.jl - Arrays indexed as the order of Star Wars movies
vscode-jupyter - VS Code Jupyter extension
TwoBasedIndexing.jl - Two-based indexing
polars - Dataframes powered by a multithreaded, vectorized query engine, written in Rust
Optimization.jl - Mathematical Optimization in Julia. Local, global, gradient-based and derivative-free. Linear, Quadratic, Convex, Mixed-Integer, and Nonlinear Optimization in one simple, fast, and differentiable interface.
jupyter-rust - a docker container for jupyter notebooks for rust
TailRec.jl - A tail recursion optimization macro for julia.
rust-script - Run Rust files and expressions as scripts without any setup or compilation step.
julia - The Julia Programming Language
bincode - A binary encoder / decoder implementation in Rust.
StatsBase.jl - Basic statistics for Julia
cargo-script - Cargo script subcommand