Just released the second minor version of my first package (was still trying to figure out all the registering stuff in v0.1.0).
It is meant to mirror the behavior of base as closely as possible. So if you know how to use range
in base you can get mutable ranges with mrange
and static ranges with srange
using the same syntax. The one difference is that you can call mrange(1, 10)
without any extra keyword arguments. This is primarily because I can’t overload the colon and got tired of typing mrange(1, stop=10)
.
Features
- More comprehensive coverage of ranges than StaticArrays. There are parallel types for:
- OneTo
- UnitRange
- StepRange
- LinRange
- StepRangeLen
- Easier syntax for static ranges than is available in StaticArrays. You can just use
srange
instead ofSUnitRange
. - Includes mutable counterparts as well as static.
Remaining Work
- Testing: At this point the majority of future work will focus on testing and documenting examples. I have most of the tests from base Julia reimplemented for this package. Also note that test coverage should be at least at 70% but an entire file that covers
promote_rule
is inlined away. However, a lot of operators (*
,+
,-
, etc) need to be more robustly tested. - Performance: Although the user facing API should be fairly stable at this point there will likely be some internal changes as I continue to improve performance. I will update this post with performance measures as soon as they are in a more consumable form.
- Documentation: Every new method and type should have a docstring but most don’t have examples yet. I’ll probably focus on this after I get more test coverage as most behavior should be pretty intuitive if you have used ranges in Julia before.
Feel free to file issues as you find them and of course pull requests solving issues are welcome.