Conversation
Drodt
left a comment
There was a problem hiding this comment.
I like the approach. It seems like a good setup.
For what languages do you want to write a client? What's on your TODO list?
...test/java/de/uka/ilkd/key/symbolic_execution/testcase/AbstractSymbolicExecutionTestCase.java
Outdated
Show resolved
Hide resolved
I make a simple one in Python. The Python stubs are mostly generated by using Java Reflection. I am creating a JSON with meta information, markdown and Python classes. I don't know whether you want a rust client. In general, you need a background thread for reading messages, and a shared map from request ids to wait conditions/locks for block synchronous requests until return value is received. The Python API is more for testing, I am not planning a production-worthy state. Do we have a use case? For JVM programs I would still recommend to use KeY directly. |
6887838 to
ae5f215
Compare
|
KaKeY: Make this state fit for merging. |
|
Discussed on Aug,29th. Branch won't get better. Waiting for "Softwareprojekt" at TUD in WS25/26 to push forward to substitute web ui. Generalization of |
77fcce9 to
d94ff14
Compare
- TreeNodeDesc - Some stabilization of features # Conflicts: # keyext.api/src/main/java/org/keyproject/key/api/StartServer.java
d19d585 to
07909e8
Compare
A remote KeY api as promised in KeY++
Design Descisions
We use handles to refer to large entities like,
KeYEnvironment,Proof, orNode.These handles are called
*Idand are aligned hierarchical:If you have a
NodeId, you can get aProofIdby callingnodeId.proofId().We do not use expose any
key.coreclasses. For example, Key'sExamples are converted intoExampleDescfor the serialization. Every information holding class ends withDesc.Given complex arguments (especially optional/nullable parameters) are packed into a class which ends with
Params.TODO