SumTypes.jl
JET.jl
SumTypes.jl | JET.jl | |
---|---|---|
2 | 13 | |
93 | 694 | |
- | - | |
7.8 | 9.0 | |
3 months ago | 1 day ago | |
Julia | Julia | |
MIT License | MIT License |
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.
SumTypes.jl
-
Enums in Rust – and why they feel better
An interesting aspect of sum types (what Rust calls enums) is that you can implement them in the language as a library if you have real unions, but not vice-versa.
Here's my example of sum types being implemented in julia as a regular package: https://github.com/MasonProtter/SumTypes.jl
-
From Julia to Rust
> Pattern matching
MLStyle.jl [1] is quite nice for this and has been around for a while.
> Tagged, closed unions
These are less general than 'real' unions and can be implemented using them. E.g. SumTypes.jl [2] has some macros to make it a bit more convenient to define them, it could use some other quality of life features though.
[1] https://thautwarm.github.io/MLStyle.jl/latest/syntax/pattern...
[2] https://github.com/MasonProtter/SumTypes.jl
JET.jl
-
Prospects of utilising Rust in scientific computation?
An informative discussion on julia forum. Have you tried using https://github.com/aviatesk/JET.jl to minimize type instabilities?
-
Julia v1.9.0 has been released
For instance, https://github.com/aviatesk/JET.jl is still in its relative infancy, but it's played a big role in detecting quite a few potential bugs that had never been reported to use by users or caught in our testing infrastructure. There's also been a lot developments like interfaces to RR the time travelling debugger https://rr-project.org/ which helps us better understand and catch some very hard to debug non-deterministic bugs.
-
Julia Computing Raises $24M Series A
Have you seen Shuhei Tadowaki's work on JET.jl (?)
If you're curious: https://github.com/aviatesk/JET.jl
This may seem more about performance (than IDE development) but Shuhei is one of the driving contributors behind developing the capabilities to use compiler capabilities for IDE integration -- and indeed JET.jl contains the kernel of a number of these capabilities.
-
I Hate Programming Language Advocacy (2000)
This is sort of being done right now, as dynamic languages have begun to adopt gradual typing... at least Python and Julia, that I know of.
If something like [JET.jl](https://github.com/aviatesk/JET.jl) become ubiquitous in Julia, one could add a function that pointed out all the places in the code where types are not fully inferred by the compiler.
It'll never be quite the same level of safety as a static language, however.
-
From Julia to Rust
- Pattern matching (sometimes you don't want the overhead of a method lookup)
[1]: https://github.com/aviatesk/JET.jl
-
Julia is the best language to extend Python for scientific computing
You can use the `@code_warntype` macro to check for type stability, which is very helpful for detecting such performance pitfalls on single function level. In the future, https://github.com/aviatesk/JET.jl may give a more powerful way to do it.
- Jet.jl: experimental type checker for Julia
- Jet.jl: A WIP compile time type checker for Julia
What are some alternatives?
Octavian.jl - Multi-threaded BLAS-like library that provides pure Julia matrix multiplication
julia - The Julia Programming Language
StaticArrays.jl - Statically sized arrays for Julia
Enzyme.jl - Julia bindings for the Enzyme automatic differentiator
Catlab.jl - A framework for applied category theory in the Julia language
Metatheory.jl - Makes Julia reason with equations. General purpose metaprogramming, symbolic computation and algebraic equational reasoning library for the Julia programming language: E-Graphs & equality saturation, term rewriting and more.
Symbolics.jl - Symbolic programming for the next generation of numerical software
egg - egg is a flexible, high-performance e-graph library
HTTP.jl - HTTP for Julia
FromFile.jl - Julia enhancement proposal (Julep) for implicit per file module in Julia