The core is fairly different to Debugger.jl,
MagneticReadhead is build ontop of Cassette.jl.
The debugging instrumentation gets compiled into the code.
In theory this can be faster than interpretting, but I have not yet run timing.
It is also using @tim.holy’s CodeTracking.jl, to help map between line numbers and methods.
In the future it will hopefully share more of the toolchain with Debugger.jl.
I am excited to live in a world where we have two competing julia debuggers.
No doubt this will lead to better common tooling, better drive for improvements, and redundancy incase of issues with one you can switch to the other.
My personal hope is that Debugger can steal tech from MagneticReadHead and incorporate some of the Cassette tricks to mitigate the orders-of-magnitude performance hit that interpretation can cause. I can imagine JuliaInterpreter behaving like an interpreter but selectively compiling methods that it doesn’t need step through that have loops or recursion, for example.
I should also say: amazing work on MagneticReadHead—it so cool to see Cassette used for so many things. Amazing that it started out as a framework for automatic differentiation and machine learning.
This doesn’t actually have anything to do with MagneticReadHead.jl. SIUnits.jl is not compatible with Julia 1.0, but it was (until recently) required for Images.jl. You need the newest release of Images.jl which removes the dependency on SIUnits: https://github.com/JuliaImages/Images.jl/releases/tag/v0.17.3