From db471ffb161ae3e6c00447d5265a8d001548850f Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Mon, 8 Apr 2024 11:09:47 +0000 Subject: [PATCH] build based on 2460d74 --- dev/.documenter-siteinfo.json | 2 +- dev/API/index.html | 8 ++++---- dev/index.html | 2 +- dev/objects.inv | Bin 492 -> 492 bytes 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index 7744cb3..b4662cf 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.6.7","generation_timestamp":"2024-04-08T11:07:04","documenter_version":"1.3.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.6.7","generation_timestamp":"2024-04-08T11:09:41","documenter_version":"1.3.0"}} \ No newline at end of file diff --git a/dev/API/index.html b/dev/API/index.html index f8f8089..3a6ea7f 100644 --- a/dev/API/index.html +++ b/dev/API/index.html @@ -1,11 +1,11 @@ API · Infiltrator.jl

API

Infiltration and exfiltration

Add @infiltrate to any function to start the infil> REPL mode when that line runs.

It's recommended to put Infiltrator.jl into your global environment and not into package environments for two reasons:

  • Infiltrator.jl is intended as a development tool only and as such should not be shipped
  • Any @infiltrate invocations in your package code will fail at compile-time, which prevents you from accidentally committing infiltrated code

This means that you'll need to use Revise.jl, inline evaluation in VS Code, or just plain old @eval to apply @infiltrate statements in your package code.

Infiltrator.@infiltrateMacro
@infiltrate
-@infiltrate condition::Bool

@infiltrate sets an infiltration point (or breakpoint).

When the infiltration point is hit, it will drop you into an interactive REPL session that lets you inspect local variables and the call stack as well as execute arbitrary statements in the context of the current functions module.

This macro also accepts an optional argument cond that must evaluate to a boolean, and then this macro will serve as a "conditional breakpoint", which starts inspections only when its condition is true. For example:

@infiltrate false # does not infiltrate
source
Infiltrator.@infiltryMacro
@infiltry expr

Wraps expression in a try block, infiltrate if an exception is raised. Equivalent to:

try
+@infiltrate condition::Bool

@infiltrate sets an infiltration point (or breakpoint).

When the infiltration point is hit, it will drop you into an interactive REPL session that lets you inspect local variables and the call stack as well as execute arbitrary statements in the context of the current functions module.

This macro also accepts an optional argument cond that must evaluate to a boolean, and then this macro will serve as a "conditional breakpoint", which starts inspections only when its condition is true. For example:

@infiltrate false # does not infiltrate
source
Infiltrator.@infiltryMacro
@infiltry expr

Wraps expression in a try block, infiltrate if an exception is raised. Equivalent to:

try
     expr
 catch
     @infiltrate
-end
source
Infiltrator.infiltrateFunction
infiltrate(mod, locals, file, line)

Function form of @infiltrate. Use this to conditionally infiltrate package code without using e.g. Revise (because this version is valid during precompilation).

This would typically be used as

if isdefined(Main, :Infiltrator)
+end
source
Infiltrator.infiltrateFunction
infiltrate(mod, locals, file, line)

Function form of @infiltrate. Use this to conditionally infiltrate package code without using e.g. Revise (because this version is valid during precompilation).

This would typically be used as

if isdefined(Main, :Infiltrator)
   Main.infiltrate(@__MODULE__, Base.@locals, @__FILE__, @__LINE__)
-end
source

The safehouse

This is where all exfiltrated variables end up. You can either exfiltrate a variable explicitly with @exfiltrate or implicitly by assignment in the infil> REPL mode.

The safehouse

This is where all exfiltrated variables end up. You can either exfiltrate a variable explicitly with @exfiltrate or implicitly by assignment in the infil> REPL mode.

Infiltrator.@withstoreMacro
@withstore ex

Evaluates the expression ex in the context of the global store.

Mainly intended for interactive use, as changes to the store's state will not propagate into the returned expression.

source

Utility

Infiltrator.end_session!Function
end_session!(s = safehouse)

End this infiltration session (reverts the effect of @exit in the debug> REPL).

Only needs to be manually called on Julia versions prior to 1.5.

source
+Infiltrator.store

Global storage for storing values while @infiltrateing or @exfiltrateing.

Also see clear_store!, set_store!, and @withstore for safehouse-related functionality.

source
Infiltrator.clear_store!Function
clear_store!(s = safehouse)

Reset the store used for global symbols.

source
Infiltrator.set_store!Function
set_store!(s = safehouse, m::Module)

Set the module backing the store s.

source
Infiltrator.@withstoreMacro
@withstore ex

Evaluates the expression ex in the context of the global store.

Mainly intended for interactive use, as changes to the store's state will not propagate into the returned expression.

source

Utility

Infiltrator.clear_disabled!Function
clear_disabled!(s = safehouse)

Clear all disabled infiltration points.

source
Infiltrator.end_session!Function
end_session!(s = safehouse)

End this infiltration session (reverts the effect of @exit in the debug> REPL).

Only needs to be manually called on Julia versions prior to 1.5.

source
Infiltrator.toggle_async_checkFunction
toggle_async_check(enabled)

Enable or disable the check for safe REPL mode switching. May result in a non-functional REPL.

source
diff --git a/dev/index.html b/dev/index.html index 6216d95..24e3b55 100644 --- a/dev/index.html +++ b/dev/index.html @@ -164,4 +164,4 @@ lnn, esc(cond) ) -end +end diff --git a/dev/objects.inv b/dev/objects.inv index 7f552acc2abb33e8f5ee0faecac292ecae78a589..34b51e92eca625acd1b1f32656b7289635d27ae0 100644 GIT binary patch delta 12 TcmaFE{Dygg3!}wG*X4`=AnXK+ delta 12 TcmaFE{Dygg3#0i)*X4`=Am;>$