Skip to content

Conversation

@wadoon
Copy link
Member

@wadoon wadoon commented Oct 17, 2023

A remote KeY api as promised in KeY++

Design Descisions

  • We use handles to refer to large entities like, KeYEnvironment, Proof, or Node.
    These handles are called *Id and are aligned hierarchical:

    EnvironemntId < ProofId < NodeId 
    

    If you have a NodeId, you can get a ProofId by calling nodeId.proofId().

  • We do not use expose any key.core classes. For example, Key's Examples are converted into ExampleDesc for the serialization. Every information holding class ends with Desc.

  • Given complex arguments (especially optional/nullable parameters) are packed into a class which ends with Params.

TODO

  • Implement a client in non-java, non-jvm (Python)

@wadoon wadoon self-assigned this Oct 17, 2023
@wadoon wadoon marked this pull request as draft October 17, 2023 14:22
@wadoon wadoon added this to the v2.14.0 milestone Oct 24, 2023
@wadoon wadoon requested a review from Drodt October 30, 2023 18:45
@KeYProject KeYProject deleted a comment from github-actions bot Oct 30, 2023
Copy link
Member

@Drodt Drodt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

@wadoon
Copy link
Member Author

wadoon commented Nov 2, 2023

For what languages do you want to write a client? What's on your TODO list?

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.

@wadoon
Copy link
Member Author

wadoon commented May 10, 2025

KaKeY: Make this state fit for merging.

@KeYProject KeYProject deleted a comment from sonarqubecloud bot May 10, 2025
wadoon and others added 9 commits June 8, 2025 16:20
# Conflicts:
#	key.core/src/test/java/de/uka/ilkd/key/proof/io/TestZipProofSaving.java
* main: (29 commits)
  disable relative path on Windows test
  Remove unnecessary (and harmful) license plugin
  Bump the gradle-deps group with 8 updates
  fix TestProofScriptCommand.java
  fix errors from automerge
  Spotless
  Single files instead of one large files
  fixing URIs for the execution engine
  use YAML for test fixture instead of ScriptLineParser
  Update pmd
  Update javacc gradle plugin to fix implicit dependency on commons-io to fix security problem
  Update checkstyle version to update implicit dependency 'guava' to fix security problem
  remove antlr3
  added note for adding new Gradle modules to the test matrix
  remove key.symbolic_execution from test rag
  Test if matrix over modules are a good thing
  fixes of UI color
  colors for dark mode, small fixes
  color settings supports now light and dark colors
  fix background update sequent view
  ...
@wadoon
Copy link
Member Author

wadoon commented Aug 29, 2025

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 NotationInfo and PosTableLayouter required.

@wadoon wadoon mentioned this pull request Oct 4, 2025
5 tasks
* main: (40 commits)
  :key.ui:run w/ -ea
  Improve error message in headless mode
  Bump actions/upload-artifact in the github-actions-deps group
  Bump the gradle-deps group with 9 updates
  Fix build.gradle in key.ui for merging service files correctly (since September they require ...INCLUDe to be set)
  Add all PO loaders to services of symex extension
  Fix NPE in dependency contract feature (caused by pulled out expression)
  Bump the gradle-deps group with 8 updates
  Bump gradle/actions from 4 to 5 in the github-actions-deps group
  Introduction of picocli for command line parsing
  enabling multi-threading in TGMain
  restoring the KeY book example
  Testgen runs for BinarySearch
  Renovation of the TestCase generation
  fixes #3660
  spotlessing
  Adding comment to clarify an if-condition
  adding a test case for datatypes with nonrecursive constructors.
  fixed test cases in RunAllFunProofs
  repaired test case
  ...
@wadoon wadoon modified the milestones: v2.14.0, v2.13.0 Nov 21, 2025
* main:
  Bump the gradle-deps group across 1 directory with 6 updates
  Fix deadlock when showing JML warnings dialog
  Bump actions/checkout from 5 to 6 in the github-actions-deps group
  try to fix the changelog generation
  Set version to 2.13.0-dev
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants