Skip to content

Conversation

@aviatesk
Copy link
Member

Implemented, being inspired by #680, thinking it might be useful in the near future for JET's use case.

The overlay interpretertation is enabled by overloading JuliaInterpreter.method_table(recurse), but maybe the entire recurse-overload mechanism itself needs to be aligned with the AbstractInterpreter design and properly organized.

Since this interface will also be needed for JET,
I'll probably work on it soon.

aviatesk added a commit that referenced this pull request Apr 20, 2025
Align the `recurse` argument to something like the base Compiler's
`AbstractInterpreter` and make JuliaInterpreter routines overloadable
properly.

This change is quite breaking (thus bumping the minor version of this
package), but necessary to enhance the customizability of JI.
For example, it will make it easier to add changes like
#682 in a nicer way, but also should
enable better designs in packages such as Revise and JET.
aviatesk added a commit that referenced this pull request Apr 21, 2025
Align the `recurse` argument to something like the base Compiler's
`AbstractInterpreter` and make JuliaInterpreter routines overloadable
properly.

This change is quite breaking (thus bumping the minor version of this
package), but necessary to enhance the customizability of JI.
For example, it will make it easier to add changes like
#682 in a nicer way, but also should
enable better designs in packages such as Revise and JET.
aviatesk added a commit that referenced this pull request Apr 21, 2025
Align the `recurse` argument to something like the base Compiler's
`AbstractInterpreter` and make JuliaInterpreter routines overloadable
properly.

This change is quite breaking (thus bumping the minor version of this
package), but necessary to enhance the customizability of JI.
For example, it will make it easier to add changes like
#682 in a nicer way, but also should
enable better designs in packages such as Revise and JET.
aviatesk added a commit that referenced this pull request Apr 21, 2025
Align the `recurse` argument to something like the base Compiler's
`AbstractInterpreter` and make JuliaInterpreter routines overloadable
properly.

This change is quite breaking (thus bumping the minor version of this
package), but necessary to enhance the customizability of JI.
For example, it will make it easier to add changes like
#682 in a nicer way, but also should
enable better designs in packages such as Revise and JET.
aviatesk added a commit that referenced this pull request Apr 21, 2025
Align the `recurse` argument to something like the base Compiler's
`AbstractInterpreter` and make JuliaInterpreter routines overloadable
properly.

This change is quite breaking (thus bumping the minor version of this
package), but necessary to enhance the customizability of JI.
For example, it will make it easier to add changes like
#682 in a nicer way, but also should
enable better designs in packages such as Revise and JET.
@aviatesk aviatesk force-pushed the avi/interpret-overlay branch 3 times, most recently from 967b925 to da34141 Compare April 21, 2025 19:45
@aviatesk aviatesk changed the base branch from master to avi/interp-interface April 21, 2025 19:45
@aviatesk
Copy link
Member Author

This is now built on top of #683.

aviatesk added a commit that referenced this pull request Apr 22, 2025
Align the `recurse` argument to something like the base Compiler's
`AbstractInterpreter` and make JuliaInterpreter routines overloadable
properly.

This change is quite breaking (thus bumping the minor version of this
package), but necessary to enhance the customizability of JI.
For example, it will make it easier to add changes like
#682 in a nicer way, but also should
enable better designs in packages such as Revise and JET.
@aviatesk aviatesk force-pushed the avi/interp-interface branch from d662e72 to b6d255c Compare April 22, 2025 11:57
aviatesk added a commit that referenced this pull request Apr 22, 2025
Align the `recurse` argument to something like the base Compiler's
`AbstractInterpreter` and make JuliaInterpreter routines overloadable
properly.

This change is quite breaking (thus bumping the minor version of this
package), but necessary to enhance the customizability of JI.
For example, it will make it easier to add changes like
#682 in a nicer way, but also should
enable better designs in packages such as Revise and JET.
@aviatesk aviatesk force-pushed the avi/interp-interface branch from b6d255c to eaf72f0 Compare April 22, 2025 12:07
aviatesk added a commit that referenced this pull request Apr 23, 2025
#683)

Align the `recurse` argument to something like the base Compiler's
`AbstractInterpreter` and make JuliaInterpreter routines overloadable
properly.

This change is quite breaking (thus bumping the minor version of this
package), but necessary to enhance the customizability of JI.
For example, it will make it easier to add changes like
#682 in a nicer way, but also should
enable better designs in packages such as Revise and JET.

- allow specifying interpreter with `@interpret`
- better error handling for `@interpret`
- better `native_call` implementation
- make `lookup` overloadable
- define `NonRecursiveInterpreter` and make `Compiled` alias to it
`Compiled` is preserved for backward compatibility.

---------

Co-authored-by: Cédric Belmant <[email protected]>
Base automatically changed from avi/interp-interface to master April 23, 2025 09:44
Align the `recurse` argument to something like the base Compiler's
`AbstractInterpreter` and make JuliaInterpreter routines overloadable
properly.

This change is quite breaking (thus bumping the minor version of this
package), but necessary to enhance the customizability of JI.
For example, it will make it easier to add changes like
#682 in a nicer way, but also should
enable better designs in packages such as Revise and JET.
Implemented, being inspired by #680,
thinking it might be useful in the near future for JET's use case.

The overlay interpretertation is enabled by overloading
`JuliaInterpreter.method_table(recurse)`, but maybe the entire
`recurse`-overload mechanism itself needs to be aligned with the
`AbstractInterpreter` design and properly organized.

Since this interface will also be needed for JET,
I'll probably work on it soon.
@aviatesk aviatesk force-pushed the avi/interpret-overlay branch from da34141 to 1238d1a Compare April 23, 2025 10:05
@aviatesk aviatesk merged commit ba766f9 into master Apr 23, 2025
10 checks passed
@aviatesk aviatesk deleted the avi/interpret-overlay branch April 23, 2025 10:23
aviatesk referenced this pull request Apr 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants