Skip to content
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

usvm-python #169

Merged
merged 344 commits into from
Jul 13, 2024
Merged

usvm-python #169

merged 344 commits into from
Jul 13, 2024

Conversation

tochilinak
Copy link
Member

No description provided.

@tochilinak tochilinak self-assigned this Jan 25, 2024
@tochilinak tochilinak force-pushed the tochilinak/python branch 2 times, most recently from 050aa5d to 553d719 Compare February 22, 2024 12:35
@tochilinak tochilinak force-pushed the tochilinak/python branch 2 times, most recently from fff3d0b to c695c9a Compare March 4, 2024 13:53
@sergeypospelov sergeypospelov force-pushed the tochilinak/python branch 3 times, most recently from c7ed7f8 to f270820 Compare March 14, 2024 16:01
Copy link

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

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

detekt found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

@tochilinak tochilinak force-pushed the tochilinak/python branch from f30709f to ef2ce3f Compare May 28, 2024 08:35
@tochilinak tochilinak force-pushed the tochilinak/python branch from 2693f55 to 7909461 Compare July 2, 2024 08:18
@korifey korifey marked this pull request as ready for review July 2, 2024 11:58
settings.gradle.kts Outdated Show resolved Hide resolved
usvm-python/usvm-python-main/build.gradle.kts Show resolved Hide resolved
usvm-python/usvm-python-runner/build.gradle.kts Outdated Show resolved Hide resolved
@tochilinak tochilinak requested a review from sergeypospelov July 9, 2024 12:32
@tochilinak tochilinak merged commit 61bf0da into main Jul 13, 2024
1 check failed
@tochilinak tochilinak deleted the tochilinak/python branch July 13, 2024 15:28
zishkaz pushed a commit that referenced this pull request Jul 17, 2024
* fix on linux

* tp_getattro

* slice fields

* list_subscript on slices

* allowed path diversion in test for slices

* Fixed state termination

* Added depth limit in SymbolTypeTree

* fix in virtualPathSelector

* Fix after rebase

* More tuple operations

* Fixes after rebase

* Started working on floats

* Float operations

* Global clones; float to int

* Accurate float operations

* Fixed bug in ElementConstraints

* Fixed issues with GlobalHeapRef

* small fix

* New structure for global refs

* Fix for linux

* Added nb_true_div for ints

* Fixed memory leak from PathTrieNode

* new params in VirtualPathSelector; soft constraints on floats

* modified state labels

* Fixes after rebase

* Added unregistered virtual operations to statistics

* added list_pop

* some new list methods

* Create structure.md

* Started switching to annotation processing

* Implemented CPythonFunctionProcessor

* got rid of jsons in cpythonadapter

* added annotations for descriptors

* fixes for linux

* Implemented SymbolicMethodProcessor

* Switched to new SymbolicMethods

* Removed some redundant code

* updated docs, gradle tasks, cpython patch

* Update structure.md

* Update API.md

* Update API.md

* update of cpython (added docs)

* added list.extend method

* implemented list.clear()

* New approximations

* Fixed some bugs; some new tests

* Added list.reverse(); refactored some old approximations

* Added usvm-python runner

* Fixes after rebase

* Fixed some warnings

* work on usvm-python package

* Fixes after rebase; work on gradle scripts

* fixes in configurations

* Added environment to build task in actions

* Added permissions

* Added MavenPublication

* Added debug runner

* Fixed blocking accept()

* Started working on fields

* Supported calls of python methods

* preparations for further objects support

* Fixed some crashes

* Fixed one crash

* Added venv; updated usvm-python-runner

* Fix in getTypeFromTypeHint

* Several fixes; core update

* fixed compilation on linux

* Fix in build script

* fix in usvm-python-runner

* supported constructor calls

* Supported load of default parameters

* some tests

* Fix in standard tp_getattro/tp_setattro logic

* Added WrappedSetRegion

* Added virtual tp_call

* Several fixes

* Reduced waiting time in loop

* Trying to catch segfault

* Started working on dicts

* usvm-python-runner: wrapped interruped in while loop

* small fix

* new attempt

* fix

* preparations for dict

* Added heuristic that adds default fields to an object

* Added filtration

* Fixed segfault

* Supported propertied

* Fixes after rebase

* Added restriction for index type

* Fixed silly bug

* Added approximation for contains_op

* Changed processing of UnregisteredVirtualOperation

* Added nb_positive and nb_negative

* Started implementing dicts

* Further work on dicts: int keys

* Added some samples

* Added dict_set_item

* fixed create_dict_const_key

* Fixed one case of underapproximation

* Fixed a case of path diversion

* More work on underapproximations

* Fixed message in DebugRunner

* Fixed parsing of venv info

* Removed warning about loggin

* Changed logic of standard tp_getattro

* Added support for generators

* Working on sending inputs from new states

* Added substitution of virtual objects to None

* onNewState for initial state

* Fixed dict type conversion

* Added dict.isEmpty and dict contains_op

* Added approximation scheme for constructors; started working on sets

* Changed logic of virtual objects as keys in dicts

* Further work on sets

* Fixed segfault with PyTuple_Pack

* One more check

* set.add; fork on dict_iter; fixed constructor call

* Fixed compilation error on linux

* Supported enumerate

* Added repetition check in NewStateObserverForRunner

* Added several approximations

* Supported build_set

* Added str_eq and str_neq

* Some tests

* Fixes after rebase

* Structure refactoring

* Refactoring: removed ConverterToPythonObject + started changing API for saving results

* Finished working on new saving interface

* Small fixes in python_approximations

* Added constraints from native calls

* Refactored PyVirtualPathSelector

* Added default value for arrays

* Moved makeTypeRating function

* Added innerType

* Added BaselineWeightedByNumberOfVirtual path selector

* Fixed visitor for recursive objects

* Made Python modules optional

* Update README.md

* Added PyPathSelectorType.DelayedForkByInstructionDfs

* Fix in BaselineStrategy

* small fix

* Added TypeRatingByNumberOfHints

* Changed ResultReceiver in runner

* Removed commented out code

* small fix in model visitor

* Changed usvm-python module logic

* Work on test task dependencies

* More work on dependencies

* Fix in ArrayCastExample + experiment with CI

* Added optional dependencies installation + fix in usvm-jvm test

* Added apt update

* Removed some optional packages

* next attempt

* more work on dependencies

* updated readme

* fix after rebase

* Added RandomizedPriorityActionStrategy

* Fixed python soft constraints

* Added DelayedForkByInstructionWeightedRandomTree

* Fixed exception catching

* Updated usvm-python/buildDistWithoutPip.sh

* Added pathSelector parameter to usvm-python-runner

* Fixed module dependency

* Added publication of usvm-python-commons

* Fixed publish task

* Added WeightedByNumberOfVirtualPathSelector; changed baseline probabilities

* Changed parameter in WeightedByNumberOfVirtualPathSelector

* Fixed WeightedByNumberOfVirtualPathSelector

* Added path selectors weighted by number of instructions

* Added parameter proportionalToSelectorSize in WeightedPyPathSelector

* Added PyMockTypeStream

* Fixed compilation error

* Fixed usage of RandomTreePathSelector

* fix: auto-formatting

* fix: try to fix gradle error

* added new path selector type

* fmt

* Formatting

* More formatting

* exclude rule with false-positive

* Started refactoring build scripts

* Fixed property access

* fixed typo

* More refactoring

* Increased Gradle max JVM heap size

* more build refactoring

* Started refactoring manualTest

* Update README.md

* More refactoring

* More refactoring

* refactoring + enhancement of SymbolTypeTree

* More formatting

* fmt

* reverted some changes in usvm-core

* PyPathConstraints

* fix: MacOS build support

* revert USoftConstraintsProvider

* fix: remove property

* LocalProgramProvider

* Finished refactoring manualTestKt

* fmt

* changed println to logger in tests

* more formatting

* fmt

* fmt

* fmt

* fmt

* chore: flaky test disabled

* Refactored exception structure

* Removed handlerPOWLong

* refactoring in usvm-python-annotations

* removed nbBoolKt

* Update usvm-python/usvm-python-main/src/main/kotlin/org/usvm/machine/model/PyModel.kt

Co-authored-by: Sergey Pospelov <[email protected]>

* Added description for Gradle modules

* Fixed unused import

* Fixed api in ManualTest

* Update usvm-python/usvm-python-main/src/main/kotlin/org/usvm/machine/PyState.kt

Co-authored-by: Sergey Pospelov <[email protected]>

* refactored jni header generation + pr fixes

* Update usvm-python/usvm-python-main/src/main/kotlin/org/usvm/machine/interpreters/symbolic/USVMPythonInterpreter.kt

Co-authored-by: Sergey Pospelov <[email protected]>

* CE fix

* Converted several classes from Java to Kotlin

* removed some redundant code

* Update usvm-python/usvm-python-main/src/main/kotlin/org/usvm/machine/interpreters/concrete/ConcretePythonInterpreter.kt

Co-authored-by: Sergey Pospelov <[email protected]>

* Update usvm-python/usvm-python-main/src/main/kotlin/org/usvm/machine/PyMachine.kt

Co-authored-by: Sergey Pospelov <[email protected]>

* detekt fixes

* pr fixes

* several renamings

* fixes in usvm-python-runner

* Docs for withTracing

* spacing in PyMachine

* detekt fix

* Simplified PyState

* several simple fixes

* more simple pr fixes

* description for handlerIsinstanceKt + minor

* fix

* more simple pr fixes

* pr fixes

* trickier pr fixes

* detekt fixes

* Separate action for python package

* removed duplicated lines

* removed redundant step

* pr comments

* detekt fix

* Updated Python link in README

* switch from self-hosted to ubuntu-20.04 runners

* lead pipeline to common look

* switch another pipelines to github hosted runners

---------

Co-authored-by: Tochilina Ekaterina <[email protected]>
Co-authored-by: Sergey Pospelov <[email protected]>
Co-authored-by: Egor Vasilyev <[email protected]>
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.

4 participants