StaticLint.jl
OffsetArrays.jl
StaticLint.jl | OffsetArrays.jl | |
---|---|---|
4 | 7 | |
133 | 192 | |
1.5% | 1.0% | |
5.7 | 6.0 | |
about 1 month ago | 18 days ago | |
Julia | Julia | |
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.
StaticLint.jl
-
Julia v1.9.0 has been released
Yes, tooling around this is being developed in the form of linters (e.g. https://github.com/julia-vscode/StaticLint.jl) and through real compiler integration tools like the very cool https://aviatesk.github.io/JET.jl/dev/ but this is definitely somewhere that the tooling in julia is weaker than in other languages. It seems to be picking up a lot of speed though.
-
The Julia language has a number of correctness flaws
It is correct if `A` is of type `Array` as normal Array in julia has 1-based indexing. It is incorrect if `A` is of some other type which subtypes `AbstractArray` as these may not follow 1-based indexing. But this case errors normally due to bounds checking. The OP talks about the case where even bounds checking is turned off using `@inbounds` for speed and thus silently giving wrong answers without giving an error.
An issue was created sometime ago in StaticLint.jl to fix this: https://github.com/julia-vscode/StaticLint.jl/issues/337
-
I created an Emacs package to statically lint Julia files (using StaticLint.jl)
Statically lint = find errors in the Julia file like using variables that are not defined, and functions with the wrong arguments. For Julia, StaticLint.jl is an actively developed library that does static linting. It basically provides a bunch of functions that spit out errors in your Julia file like those that I mentioned above. If you are an Emacs editor user, this project is like a "convenience" which will run Julia silently in the background, and communicate with it to extract errors in the file that you currently have open. These errors are then highlighted in your editor view using the Flycheck package that is one of the ways to highlight errors in Emacs.
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
What are some alternatives?
LanguageServer.jl - An implementation of the Microsoft Language Server Protocol for the Julia language.
StarWarsArrays.jl - Arrays indexed as the order of Star Wars movies
julia-staticlint - Emacs integration for StaticLint.jl
TwoBasedIndexing.jl - Two-based indexing
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.
StatsBase.jl - Basic statistics for Julia
TailRec.jl - A tail recursion optimization macro for julia.
dotfiles - Linux work environment setup
julia - The Julia Programming Language
Distributions.jl - A Julia package for probability distributions and associated functions.