-
Notifications
You must be signed in to change notification settings - Fork 26
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
Runtime evaluator #405
Runtime evaluator #405
Conversation
06b541d
to
54c446e
Compare
aecbb32
to
a277b39
Compare
modules/core/src/main/scala/ch/epfl/scala/debugadapter/DebugConfig.scala
Show resolved
Hide resolved
modules/core/src/main/scala/ch/epfl/scala/debugadapter/internal/EvaluationProvider.scala
Outdated
Show resolved
Hide resolved
modules/core/src/main/scala/ch/epfl/scala/debugadapter/internal/EvaluationProvider.scala
Outdated
Show resolved
Hide resolved
modules/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/JdiClassLoader.scala
Outdated
Show resolved
Hide resolved
modules/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/JdiClassLoader.scala
Outdated
Show resolved
Hide resolved
modules/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/JdiClassLoader.scala
Outdated
Show resolved
Hide resolved
modules/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/JdiObject.scala
Outdated
Show resolved
Hide resolved
modules/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/JdiValue.scala
Outdated
Show resolved
Hide resolved
...s/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/PreparedExpression.scala
Outdated
Show resolved
Hide resolved
...ore/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluationTree.scala
Outdated
Show resolved
Hide resolved
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.
Some comments
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.
Some more comments
...ore/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluationTree.scala
Outdated
Show resolved
Hide resolved
...ore/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluationTree.scala
Outdated
Show resolved
Hide resolved
...ore/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluationTree.scala
Outdated
Show resolved
Hide resolved
...ore/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluationTree.scala
Outdated
Show resolved
Hide resolved
...ore/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluationTree.scala
Outdated
Show resolved
Hide resolved
.../src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluatorPatterns.scala
Outdated
Show resolved
Hide resolved
...ore/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluationTree.scala
Outdated
Show resolved
Hide resolved
...s/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimePrimitiveOp.scala
Outdated
Show resolved
Hide resolved
...s/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimePrimitiveOp.scala
Show resolved
Hide resolved
...s/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimePrimitiveOp.scala
Outdated
Show resolved
Hide resolved
...s/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimePrimitiveOp.scala
Outdated
Show resolved
Hide resolved
...s/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimePrimitiveOp.scala
Outdated
Show resolved
Hide resolved
modules/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/ValidationMonad.scala
Outdated
Show resolved
Hide resolved
modules/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/ValidationMonad.scala
Outdated
Show resolved
Hide resolved
modules/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/ValidationMonad.scala
Outdated
Show resolved
Hide resolved
modules/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/package.scala
Outdated
Show resolved
Hide resolved
...les/tests/src/test/scala/ch/epfl/scala/debugadapter/internal/JavaRuntimeEvaluatorTests.scala
Outdated
Show resolved
Hide resolved
...test/scala/ch/epfl/scala/debugadapter/internal/RuntimeEvaluatorPrimitiveOperationTests.scala
Outdated
Show resolved
Hide resolved
modules/tests/src/test/scala/ch/epfl/scala/debugadapter/internal/RuntimeEvaluatorTests.scala
Outdated
Show resolved
Hide resolved
...les/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluator.scala
Outdated
Show resolved
Hide resolved
...les/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluator.scala
Outdated
Show resolved
Hide resolved
...les/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluator.scala
Outdated
Show resolved
Hide resolved
...les/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluator.scala
Outdated
Show resolved
Hide resolved
...les/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluator.scala
Outdated
Show resolved
Hide resolved
.../src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluatorPatterns.scala
Outdated
Show resolved
Hide resolved
modules/tests/src/test/scala/ch/epfl/scala/debugadapter/BypassExpressionCompilerTests.scala
Show resolved
Hide resolved
...les/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluator.scala
Outdated
Show resolved
Hide resolved
...ore/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluationTree.scala
Outdated
Show resolved
Hide resolved
...les/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluator.scala
Outdated
Show resolved
Hide resolved
...les/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluator.scala
Outdated
Show resolved
Hide resolved
...les/core/src/main/scala/ch/epfl/scala/debugadapter/internal/evaluator/RuntimeEvaluator.scala
Outdated
Show resolved
Hide resolved
167e307
to
9132c9d
Compare
feat: more complex apply, inheritance partially handled feat: find implicit .apply() calls fix: cross compile error saving runtime validator feat: Added runtime case errors. Added qualifiers to runtime tree nodes fix: removed duplicates in RuntimeEvaluator some refactoring & basic module resolution fix: syntax fix: tests & type component extraction fix: evaluate any module if already instantiated fix: .only :'( looking for error found it: wrong comparison =D temporary: use latest version of sbt for the ci to pass grouped tests by feature and splitted source feat: evaluate inner & nested types fix: module resolution fix: split select and apply validation removed useless code + defined validation-specific monad finished applying validation monad, evaluation type ordering feat: new call evaluation 1/2 + class lookup fix for scala 2 looking for errors bis looking for errors (forgot some prints) printy printy we love print one last time cross-compile error x) found it ? found error + began checking Java expressions evaluation feat: runtime validation & evaluation feat: migrating to the new jdi classes & minor optimization for class lookup fix: syntax cross compatibility fix: java syntax warning-error added tests for static method calls fix: java syntax warning-error fix: primitive evaluation 1/n feat: primitive method evaluation fix: removed uneeded scalameta deps, fixed sbt plugin error refactoring fix: changed deprecated converter + removed unneeded conversions feat: primitive equality placed primitive operations tests in separate file. Inlined auxiliary methods fix: allow unboxable type in primitive operation + load classes on need
fix: recover by looking for classes in static context fix: applied requested changes 1.5/2 fix: removed access to instance members via static applied changes 1.75/2, added some docs, fixed nested types resolutions applied review comments, fixed == operator
fix: module evaluation
9132c9d
to
e3c93a6
Compare
94bbc8f
to
61dbc60
Compare
modules/core/src/main/scala/ch/epfl/scala/debugadapter/internal/EvaluationProvider.scala
Outdated
Show resolved
Hide resolved
modules/core/src/main/scala/ch/epfl/scala/debugadapter/internal/EvaluationProvider.scala
Show resolved
Hide resolved
modules/tests/src/test/scala/ch/epfl/scala/debugadapter/BypassExpressionCompilerTests.scala
Outdated
Show resolved
Hide resolved
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.
Good job @iusildra!
Goal: make an evaluator that would evaluate an expression with reflection by using jdi and scalameta
How it should work:
Because of some overloads resolution or access to private field during the debug session, one evaluation mode might fail but not the other, so there must be some priorities: