-
Notifications
You must be signed in to change notification settings - Fork 323
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Instrumentation, visualization and autoscoped constructors #9452
Instrumentation, visualization and autoscoped constructors #9452
Conversation
...on-tests/src/test/scala/org/enso/interpreter/test/instrument/RuntimeVisualizationsTest.scala
Show resolved
Hide resolved
engine/runtime/src/main/java/org/enso/interpreter/runtime/callable/UnresolvedConstructor.java
Show resolved
Hide resolved
engine/runtime-parser/src/main/java/org/enso/compiler/core/TreeToIr.java
Show resolved
Hide resolved
...ment-common/src/main/scala/org/enso/interpreter/instrument/job/ProgramExecutionSupport.scala
Outdated
Show resolved
Hide resolved
...ntegration-tests/src/test/scala/org/enso/interpreter/test/instrument/RuntimeServerTest.scala
Show resolved
Hide resolved
var fn = c.getConstructorFunction(); | ||
var r = invoke.execute(fn, frame, state, unresolved.args); | ||
return r; | ||
} | ||
} | ||
|
||
private void notifyInsertedWithCheck() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The here-in provided changes are not 100% correct. They seem to deliver some instrumentation events, but probably there are corner cases when they don't work well. Anyway, there are some events generated, so hopefully @4e6 can investigate what to do with ProgramExecutionSupport
even at current state.
The issue here is that in case of expression
first, the instrumentation sees the It should be the opposite, like, for example, it is done for suspended arguments. First, the instrumentation should see the |
I am afraid I cannot revert the order easily. Let's do some pair debugging to find out what can be done. Thank you for your investigation. |
Dmitry Bushev reports a new STANDUP for yesterday (2024-03-25): Progress: Started working on the issue. Debugging the simple case with the autoscope constructor without the arguments. Debugging the execution support logic to see what happens to function call wrapper after it is captured by the instrumentation It should be finished by 2024-03-29. Next Day: Next day I will be working on the #9452 task. Continue working on the task |
Dmitry Bushev reports a new STANDUP for today (2024-03-26): Progress: Continue working on the issue. Debugging the case with the suspended arguments. Found out that the wrapped value should also be instrumentable. Trying to enable the instrumentation for the value wrapped in the function call instrumentation node. It should be finished by 2024-03-29. Next Day: Next day I will be working on the #9452 task. Continue working on the task |
Autoscope constructorThe instrumentation of autoscope argument currently works this way type T
A
B x
C y z
main =
a = test ..A
a
test t:T = t The
First, it enters the Constructor passed as a lazy argumentHere is the updated program that instruments normal constructor call type T
A
B x
C y z
main =
a = test T.A
a
test ~t:T = t In this case the IdExecutionInstrument sees the following calls:
In this case the instrument sees the |
Dmitry Bushev reports a new STANDUP for yesterday (2024-03-27): Progress: Continue working on the issue. Added the ydoc-server FFI interface for Java. Fixed vite build broken by the webpack dependency. Debugging the function call instrumentation node for the suspended arguments. It should be finished by 2024-03-29. Next Day: Next day I will be working on the #9452 task. Continue working on the task |
Dmitry Bushev reports a new STANDUP for yesterday (2024-03-28): Progress: Continue working on the yjs. Replaced webpack with the Vite build. Added ydoc-server bundled artifact to the Vite output. Started working on adding conditional ffi import. It should be finished by 2024-03-29. Next Day: Next day I will be working on the #9452 task. Continue working on the task |
Dmitry Bushev reports a new STANDUP for yesterday (2024-03-29): Progress: Continue working on the issue. Updated the ydoc-server FFI interface. Implemented the bundle assembly for the Java server. Tried to make the conditional build that would switch between java and wasm interfaces. It should be finished by 2024-03-29. Next Day: Next day I will be working on the #9452 task. Continue working on the task |
…receive an expression update
@4e6, after 1a13084 I am green on:
the only failing test is |
Right now there are two failures:
33d8b6f addresses the |
380f5d2
to
3a986f0
Compare
...rument-id-execution/src/main/java/org/enso/interpreter/instrument/IdExecutionInstrument.java
Show resolved
Hide resolved
...ntegration-tests/src/test/scala/org/enso/interpreter/test/instrument/RuntimeServerTest.scala
Show resolved
Hide resolved
...ntegration-tests/src/test/scala/org/enso/interpreter/test/instrument/RuntimeServerTest.scala
Show resolved
Hide resolved
engine/runtime/src/main/java/org/enso/interpreter/runtime/callable/UnresolvedConstructor.java
Outdated
Show resolved
Hide resolved
Co-authored-by: Dmitry Bushev <bushevdv@gmail.com>
Pull Request Description
So far reproduces and later will fix #9381.
Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:
Scala,
Java,
style guides.