https://github.com/JuliaDebug/CassetteOverlay.jl
An experimental simple method overlay mechanism for Julia
https://github.com/JuliaDebug/CassetteOverlay.jl
Last synced: 2 months ago
JSON representation
An experimental simple method overlay mechanism for Julia
- Host: GitHub
- URL: https://github.com/JuliaDebug/CassetteOverlay.jl
- Owner: JuliaDebug
- License: mit
- Created: 2022-11-28T05:35:39.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2025-12-01T10:41:58.000Z (6 months ago)
- Last Synced: 2026-03-31T06:34:04.270Z (2 months ago)
- Language: Julia
- Homepage:
- Size: 98.6 KB
- Stars: 34
- Watchers: 3
- Forks: 6
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-julia-security - CassetteOverlay.jl - Method overlay mechanism for instrumenting and intercepting function calls. (Binary Analysis and Reverse Engineering / Debugging and Introspection)
README
# CassetteOverlay.jl
```julia
julia> using CassetteOverlay, Test
julia> @MethodTable sintable;
julia> @overlay sintable sin(x::Union{Float32,Float64}) = cos(x);
julia> pass = @overlaypass sintable;
# run with the overlayed method
julia> @test pass(42) do a
sin(a) * cos(a)
end == cos(42)^2
Test Passed
# invalidate the overlayed method and make it return `cos∘sin`
julia> @overlay sintable sin(x::Union{Float32,Float64}) = cos(x) * @nonoverlay sin(x);
julia> @test pass(42) do a
sin(a) * cos(a)
end == cos(42)^2 * sin(42)
Test Passed
```