-
Notifications
You must be signed in to change notification settings - Fork 47
Serializable class hierarchy for statements, expressions and types #376
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
base: master
Are you sure you want to change the base?
Serializable class hierarchy for statements, expressions and types #376
Conversation
…tion-ai # Conflicts: # subprojects/common/analysis/src/main/java/hu/bme/mit/theta/analysis/algorithm/bounded/BoundedChecker.kt # subprojects/common/core/src/main/java/hu/bme/mit/theta/core/type/bvtype/BvType.java # subprojects/common/core/src/main/java/hu/bme/mit/theta/core/utils/ExprSimplifier.java # subprojects/solver/solver-smtlib/src/main/java/hu/bme/mit/theta/solver/smtlib/impl/generic/GenericSmtLibExprTransformer.java # subprojects/solver/solver-smtlib/src/main/java/hu/bme/mit/theta/solver/smtlib/impl/generic/GenericSmtLibTermTransformer.java # subprojects/solver/solver-z3/src/main/java/hu/bme/mit/theta/solver/z3/Z3TermTransformer.java # subprojects/xcfa/c2xcfa/src/main/java/hu/bme/mit/theta/c2xcfa/FrontendXcfaBuilder.kt
# Conflicts: # build.gradle.kts
# Conflicts: # build.gradle.kts
ff7cb8c to
3adb961
Compare
|
Does the migration of the Stmt and Expr classes from Java to Kotlin lead to API breakage in other branches, especially long-running ones? While this is not a blocker (although @leventeBajczi could probably provide more insight on the Theta API stability policy), it should be something we watch out for (and preferably document) to help us in future merges/rebases. |
The only breaking changes that I am aware of (but they are not really changes in the API, rather consequences of Java-Kotlin conversion):
|
# Conflicts: # build.gradle.kts
|
@csanadtelbisz, can you take a look at the conflicts? |
|
I think this is not a crucial change for sv-comp, and it brings many fundamental changes (mostly refactoring that affects the core of Theta). So I vote for postponing this PR after sv-comp to avoid a hurried merge. |
Making the statements, expressions and types serializable. For this, the relevant classes were converted into Kotlin.
Important changes:
hu.bme.mit.theta.core.type.generated.expr.exprSerializerModule) can be used for serialization. Note that the serialization module has to be extended whenever a new expression/type is declared in a different (gradle project) module. See the core serialization module definition in SerializerModule.kt that can be included in extended module definitions.idattribute is added toDeclfor the sole purpose of serialization. Do not use this id in other contexts.