Skip to content

Add gRPC server for type inference #292

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

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

Add gRPC server for type inference #292

wants to merge 1 commit into from

Conversation

Lipen
Copy link
Member

@Lipen Lipen commented Jun 16, 2025

This PR adds gRPC server for type inference, bringing USVM-as-a-service.

@Lipen Lipen requested review from CaelmBleidd and Copilot June 16, 2025 15:37
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds a gRPC server for type inference to enable USVM-as-a-service. Key changes include:

  • Adding a new gRPC service definition with greeter.proto.
  • Updating build configuration and dependency versions (including Wire and grpc-related dependencies) to support the gRPC server.
  • Refactoring test resource imports and removing outdated DTO conversion and utility files, along with reorganizing module inclusions in settings.gradle.kts.

Reviewed Changes

Copilot reviewed 33 out of 33 changed files in this pull request and generated no comments.

Show a summary per file
File Description
usvm-ts-service/src/main/extraproto/greeter.proto New proto file defining the Greeter service.
usvm-ts-service/build.gradle.kts Updated build script with Wire configurations and a temporary TODO for dependency reference.
usvm-ts-dataflow (various test and main files) Refactored resource loading imports and removed obsolete utility and DTO conversion files.
usvm-ts-dataflow/src/main/kotlin/org/usvm/dataflow/ts/infer/annotation/EtsSceneAnnotator.kt Adjusted annotation fields (renaming and additions) for scene annotations.
settings.gradle.kts Reorganized module inclusions, removing several modules and adding new ones.
buildSrc/src/main/kotlin/Dependencies.kt Upgraded and adjusted dependency versions and package identifiers.
Comments suppressed due to low confidence (4)

usvm-ts-service/build.gradle.kts:18

  • Consider resolving the TODO by updating the protoSource dependency to use 'Libs.jacodb_ets_wire_protos' for consistency.
protoSource("org.jacodb:wire-protos") // TODO: fix to 'Libs.jacodb_ets_wire_protos'

usvm-ts-dataflow/src/main/kotlin/org/usvm/dataflow/ts/infer/annotation/EtsSceneAnnotator.kt:65

  • The field renaming (from superClass to superClassName and the addition of implementedInterfaceNames) requires corresponding updates in downstream consumers. Please ensure that clients using these annotations are adjusted accordingly.
category = category,

buildSrc/src/main/kotlin/Dependencies.kt:128

  • The update to use 'org.jacodb' for the jacodbPackage aligns with the new module configuration; verify that all modules referencing jacodb use the correct package name.
private const val jacodbPackage = "org.jacodb"

settings.gradle.kts:2

  • The reorganization in settings.gradle.kts removes several module includes; please ensure that all dependent build configurations and consumers have been updated to reflect these changes.
include("usvm-python") removed and others

return EtsScene(listOf(file))

logger.info { "Loading Scene from '$path'..." }
val sceneProto = loadScene(path)
Copy link
Member Author

@Lipen Lipen Jun 17, 2025

Choose a reason for hiding this comment

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

@CaelmBleidd I have started to replace JSON-based loadEtsFileAutoConvert with gRPC-based loadScene. Do we want to use gRPC one everywhere?

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.

1 participant