400 Commits (fc7437abb0042cd2828313c64a4b05d621f31c3d)

Author SHA1 Message Date
Nikos Gorogiannis 3e94fc7e16 [racerd] consider interfaces extending android.os.IInterface as automatically threadsafe
6 years ago
Nikos Gorogiannis cf6ced0580 [racerd] on-annotations
6 years ago
Josh Berdine 4acad5ca90 [ocamlformat] upgrade ocamlformat to 0.9
6 years ago
Nikos Gorogiannis fdcd4cf591 [racerd] modulo loc
6 years ago
Jeremy Dubreil 5769e8bfeb [infer][racerd] use markup formatting for the Interface Not Thread Safe error message
6 years ago
Nikos Gorogiannis 9e4d096d8e [racerd] fix report text for interface not thread safe
6 years ago
Nikos Gorogiannis f78dfbaeda [racerd] guardeby checks on uithread
6 years ago
Nikos Gorogiannis 98e796b006 [racerd] gate GuardedBy
6 years ago
Nikos Gorogiannis 4a75df2a83 [racerd] report only writes for GuardedBy
6 years ago
Nikos Gorogiannis f32db5382f [racerd] restrict guarded by to one field/same or superclass
6 years ago
Nikos Gorogiannis 582609b558 [racerd] androidx models
6 years ago
Nikos Gorogiannis 59a10d00d4 [racerd] guardedby
6 years ago
Nikos Gorogiannis e7374bc62e [racerd] More cleanup in transition function
6 years ago
Nikos Gorogiannis 5839a5d6b4 [racerd] handle reads of actuals for container actions + cleanup
6 years ago
Nikos Gorogiannis 05f14391a6 [racerd] replace quandary traces with explicit ones
6 years ago
Nikos Gorogiannis f4c6072a59 [racerd] bit less work
6 years ago
Nikos Gorogiannis 817b1bdf31 [racerd] no need for quadratic check
6 years ago
Nikos Gorogiannis d6fb8248b2 [racerd] process one summary at a time
6 years ago
Nikos Gorogiannis 2d0c9a6c47 [racerd] don't fail on no receiver
6 years ago
Nikos Gorogiannis b243fae86c [starvation] template filters
6 years ago
Calascibetta Romain 137e070ece [infer][PR] Move to base64.3.0.0
6 years ago
Nikos Gorogiannis 764e9ee1be [AI] empty is not (necessarily) bottom
6 years ago
Nikos Gorogiannis 9463b25702 [classloads] move sources to more appropriate location
6 years ago
Nikos Gorogiannis 2ee8ab2990 [class-loads] catch expressions
6 years ago
Nikos Gorogiannis b4a22a5bdd [classloads] prune and multidimensional arrays
6 years ago
Nikos Gorogiannis 3e55f8eb60 [classloads] class object expressions
6 years ago
Nikos Gorogiannis 3f9eb37246 [classloads] casts and instanceof
6 years ago
Nikos Gorogiannis c1a00b2358 [classloads] restrict loads via fields
6 years ago
Nikos Gorogiannis f171d0496b [classloads] array expressions
6 years ago
Nikos Gorogiannis 3fc4ccbc14 [classloads] load super classes recursively
6 years ago
Nikos Gorogiannis 89e396571d [classloads] treat loads and stores wrt to field derefs
6 years ago
Nikos Gorogiannis 5686d67072 [classloads] fix treatment of static initializers
6 years ago
Nikos Gorogiannis 00df708f98 [classloads] record at most one load for each class
6 years ago
Nikos Gorogiannis 39b11619b8 [classloads] overhaul test infra & fix treatment of self-class loading in method calls
6 years ago
Nikos Gorogiannis 9e91c9298b [racerd] remove redundant ownership constructor/state
6 years ago
Nikos Gorogiannis e2bb049a5e [racerd] fix bug in ownership transitivity 2
6 years ago
Nikos Gorogiannis 7bbb7fc869 [clang][objcpp] register exported methods and treat them as private in RacerD
6 years ago
Nikos Gorogiannis ddc15ad663 [racerd] move models and domain operations to respective source files
6 years ago
Nikos Gorogiannis 11373c8a6b [racerd] strip down domain interface
6 years ago
Nikos Gorogiannis 002e470137 [racerd] fix bug in ownership transitivity
6 years ago
Nikos Gorogiannis 2d2d861686 [racerd] reduce size of IssueAuxData
6 years ago
Nikos Gorogiannis 19faf643dc [racerd] optional arguments and missing actuals
6 years ago
Nikos Gorogiannis a3f4bb01f4 [starvation] fix type bug occurring in class references
6 years ago
Nikos Gorogiannis 9d6a9f52ec [starvation] improve 2-way deadlock reports
6 years ago
Nikos Gorogiannis 101283f9d0 [starvation] fix trace description strings for taking locks
6 years ago
Jules Villard 26d4a2d14f [HIL] simplify some functors around TransferFunctions
6 years ago
Nikos Gorogiannis fc80179394 [starvation] use compare ppx
6 years ago
Nikos Gorogiannis f8fc40cea9 [starvation] improve debugging output
6 years ago
Nikos Gorogiannis a47ec3611f [starvation] tune logging and avoid dieing on non-struct locks
6 years ago
Jules Villard 1ee5877aa2 [HIL][3/4] remove compatibility AccessExpression.ml
6 years ago
Nikos Gorogiannis 2701073b3e [starvation] C++ deadlock FPs due to recursive and unknown mutexes
6 years ago
Nikos Gorogiannis 9c240ed978 [starvation] skip analysis option should be used at top level too
6 years ago
Nikos Gorogiannis 27d8a65906 [starvation][concurrency] split guard lock treatment and add support for non-recursive locks (per language)
6 years ago
Nikos Gorogiannis abee2a5cb0 [AI] fix top interface
6 years ago
Nikos Gorogiannis 53fc45d39e [concurrency] remove bad lock model
6 years ago
Nikos Gorogiannis 31653ca6c3 [racerd] more precise trace expansion
6 years ago
Jules Villard f3411a2203 [HIL] Add `ExitScope` instruction
6 years ago
Nikos Gorogiannis 6aba4b7ca2 [AI] kill astate type
6 years ago
Nikos Gorogiannis bbd26769c9 [starvation] c++/Obj C deadlocks
6 years ago
Nikos Gorogiannis 2c6a705116 [racerd] kill stability
6 years ago
Nikos Gorogiannis 1121efbe59 [concurrency] refactor C++ models
6 years ago
Nikos Gorogiannis 3b5262f185 [racerd] refactor method matching for all languages
6 years ago
Mehdi Bouaziz ed25b70ff2 RacerD: use concat_traces
6 years ago
Nikos Gorogiannis 68a08a8a09 [starvation] stop reporting on AccountManager.setUserData
6 years ago
Nikos Gorogiannis f3194e00c9 [starvation] silence some strict mode models
6 years ago
Nikos Gorogiannis d53c81c65c [concurrency] add model for android.app.Application
6 years ago
Nikos Gorogiannis 276c25b563 [starvation] no starvation warnings on constructors
6 years ago
Nikos Gorogiannis a3df8f9f99 [starvation] simplify report format
6 years ago
Nikos Gorogiannis b5094cda9b [starvation] suppress the number of reports suppressed
6 years ago
Josh Berdine 6a4d8b72f0 [doc] Fix some invalid/suspicious docstrings
6 years ago
Nikos Gorogiannis 77f7e70417 [racerd] cleanups in reporting function
6 years ago
Nikos Gorogiannis 342bfb418a [racerd] fix NSObject.init treatment of ownership
6 years ago
Nikos Gorogiannis b0b8459c3a [racerd] detect ObjC "private" methods
6 years ago
Nikos Gorogiannis 105b772cff [racerd] iOS first steps
6 years ago
Nikos Gorogiannis ea7b185b6b [classloads] add option for specifying root methods and add tests
6 years ago
Nikos Gorogiannis 4d4f053c62 [classloads] no abstract interpreter
6 years ago
Nikos Gorogiannis 70ed9b146f [classloads] sil version
6 years ago
Nikos Gorogiannis 4334225e67 [class loading] initial commit
6 years ago
Nikos Gorogiannis 7e7913d5ee [racerd] recognize more class member types as concurrency hints for C++
6 years ago
Josh Berdine e1d4aad487 [ocamlformat] upgrade ocamlformat to 0.8
6 years ago
Nikos Gorogiannis 9eecd1bb9b [racerd] reconcile java and clang report corellation code
6 years ago
Nikos Gorogiannis 0b4beda1cd [starvation] also consider subclasses of Future
6 years ago
Nikos Gorogiannis 41e43b5c1e [starvation] fix typo in reporting
6 years ago
Nikos Gorogiannis 309ce2d362 [racerd] folly spinlock models
6 years ago
Nikos Gorogiannis 8521d7590a [starvation] allow propagation of order constraints to any class
6 years ago
Nikos Gorogiannis 1644e99499 [starvation] add issue type STRICT_MODE and make distinct reports on it
6 years ago
Nikos Gorogiannis cbe4d9b0fd [concurrency] drop option type from method matcher records
6 years ago
Nikos Gorogiannis 2989b339a1 [starvation] streamline and enable strict mode
6 years ago
Nikos Gorogiannis 9b02c497f8 [starvation] extract explicit traces
6 years ago
Nikos Gorogiannis 631959ced0 [starvation] refactor method matching ; kill dev-android-strict-mode option
6 years ago
Nikos Gorogiannis 0c7a8556dc [concurrency] treat @MainThread annotation
6 years ago
Nikos Gorogiannis 66392db8d5 [starvation] allow specifying method patterns for skipping analysis via cmdline and inferconfig
6 years ago
Nikos Gorogiannis 52eef069b2 [concurrency] fix UI thread models
6 years ago
Nikos Gorogiannis d48e22be8b [starvation] prefer shorter UI-thread traces
6 years ago
Nikos Gorogiannis 888a169dce [starvation] make a trace out of our explanation as to why a method runs on the UI thread
7 years ago
Nikos Gorogiannis a6e5ab7fdb [starvation][strict mode] disable strict mode violation reporting and analysis by default
7 years ago
Nikos Gorogiannis 96e698a458 [starvation] strict mode meta-analyzer for Android
7 years ago
Nikos Gorogiannis 365ebd8873 [concurrency] split RacerD+starvation models into three modules
7 years ago
Josh Berdine 40ab73037e [ocamlformat] upgrade to ocamlformat 0.7
7 years ago
Nikos Gorogiannis 14556f52b4 [starvation] whitelist @WorkerThread methods
7 years ago
Mehdi Bouaziz 6bb429ef63 Reporting cleanup 13: log_issue_external
7 years ago
Nikos Gorogiannis af14da6a13 [starvation] stop considering View.get... as blocking.
7 years ago
Jeremy Dubreil 59b7915177 [infer] rename the severity variants
7 years ago
Jeremy Dubreil 3767716c86 [infer][scheduler] simplify the callbacks API
7 years ago
Nikos Gorogiannis 3870ebb747 [starvation] catch calls to Thread.sleep
7 years ago
Nikos Gorogiannis 332bd365e8 [starvation] fix report string when class is annotated @UIThread
7 years ago
Nikos Gorogiannis 4cc8563212 [starvation] catch Object.wait calls on main thread
7 years ago
Nikos Gorogiannis 14aa1edbf5 [starvation] Avoid FPs in guava Futures
7 years ago
Nikos Gorogiannis 6b156f71fe [racerd] special-case for Litho's getThis
7 years ago
Nikos Gorogiannis b0ba6b3e1e [racerd] don't replicate existing logic in `propagate_return`
7 years ago
Nikos Gorogiannis c5ad94d825 [starvation] Adjust blocking call severities to better reflect practice
7 years ago
Nikos Gorogiannis d4a9c6f81a [racerd] gate stability
7 years ago
Nikos Gorogiannis 848ef3da21 [RacerD] Fix stability implementation
7 years ago
Nikos Gorogiannis f28aa37cb6 [racerd] Do not record paths starting at variables not appearing in source
7 years ago
Nikos Gorogiannis e5d8f501f4 [starvation] fix conversions of int literals which need 64 bit ints
7 years ago
Jules Villard 0914fee2cc [backend] remove source file from exe_env
7 years ago
Nikos Gorogiannis 35fba2de40 [starvation] skip generated code
7 years ago
Nikos Gorogiannis f88fe8fc3b [starvation] improve deadlock reports
7 years ago
Nikos Gorogiannis 73507de47b [starvation] report only on public methods
7 years ago
Nikos Gorogiannis 101574e9d0 Revert again.
7 years ago
Nikos Gorogiannis d13b845434 [starvation] improve deadlock reports
7 years ago
Nikos Gorogiannis db17b13f6a Bad rebase of stacked diff -- reverting.
7 years ago
Nikos Gorogiannis 787cb2c612 [starvation] improve deadlock reports
7 years ago
Nikos Gorogiannis 113ddbb3ac [starvation] dedup deadlocks
7 years ago
Nikos Gorogiannis 4820e3db1e [starvation] add NonBlocking annotation
7 years ago
Jules Villard 710dae8ee4 [doc] add `make doc` target for building html API doc
7 years ago
Nikos Gorogiannis cacc975394 [starvation] implement SuppressLint
7 years ago
Nikos Gorogiannis 2a83d64481 [starvation] silence reports on IO
7 years ago
Nikos Gorogiannis 971cd84455 [starvation] report using split events
7 years ago
Jules Villard 8b882ac1df Change license to MIT
7 years ago
Nikos Gorogiannis 057efb2893 [starvation] split events not under lock into separate state component
7 years ago
Nikos Gorogiannis dd53d0af77 [starvation] equalise summary and abstract state types
7 years ago
Nikos Gorogiannis 6769248f9b [starvation] improve module naming and move to records for states
7 years ago
Nikos Gorogiannis c70b978aa8 [starvation] deduplication
7 years ago
Nikos Gorogiannis e36ca3d07f [starvation] explain why we think a method runs on the ui thread
7 years ago
Nikos Gorogiannis 5e8b118151 [starvation] fix reported location
7 years ago
Nikos Gorogiannis 818d359675 [racerd] reorg domain module
7 years ago
Nikos Gorogiannis dde2000e75 [racerd] disambiguate duplicate reports due to method overloading
7 years ago
Nikos Gorogiannis 9cddbd7af8 [racerd] make locals in Java owned, plus stop reporting on temps/logical vars
7 years ago
Nikos Gorogiannis 0563eacbb0 [racerd] remove code and references to being sound
7 years ago
Mehdi Bouaziz 1898ef3a7a [Summary] Move payloads to a separate module
7 years ago
Nikos Gorogiannis 7e5381b7a9 [starvation] model legacy synchronized containers
7 years ago
Nikos Gorogiannis 5d4007e176 [racerd] silence noise about wobbly paths, but leave a textual clue for statistical purposes
7 years ago
Nikos Gorogiannis e3f0754335 [starvation] add static timeout recognition and 5 second android limit
7 years ago
Nikos Gorogiannis f22bb53aa8 [starvation] Treat Service (but not IntentService) subclasses as on UI thread
7 years ago
Nikos Gorogiannis 78ad6e6d00 [concurrency] extend notion of ui thread
7 years ago
Nikos Gorogiannis b02a6e9e48 [starvation] catch AsyncTask.get calls on main thread
7 years ago
Jules Villard 3aa6fdf1ce [rename] specs -> summary, Summary -> SummaryPayload
7 years ago
Nikos Gorogiannis ecfa29b083 [starvation] dedup deadlock warnings
7 years ago
Jules Villard dfe2ad5229 [camel] call `Format.pp_print_*` directly where appropriate
7 years ago
Nikos Gorogiannis a7bd92de2f [starvation] enable starvation checker
7 years ago
Nikos Gorogiannis c104ea11dc [racerd] switch to external issue logs
7 years ago
Nikos Gorogiannis 58f37cb9d8 [starvation] do not report deadlocks when both traces on UI thread
7 years ago
Nikos Gorogiannis 538bcd9135 [starvation] store issues to issue-logs like linters do
7 years ago
Nikos Gorogiannis 14ec16da12 [starvation] catch calls to AcccountManager.setUserData
7 years ago
Nikos Gorogiannis bf501e5a7d [starvation] treat Future.get as potentially blocking
7 years ago
Nikos Gorogiannis 96c6ff718b [racerd] add support for folly's synchronized() {}
7 years ago
Nikos Gorogiannis bef38bbf1a [racerd] recognise std::lock calls
7 years ago
Sam Blackshear 7108b348ff [racerd] significantly simplify deep ownership logic
7 years ago
Sam Blackshear 78521419a9 [racerd] make deep ownership work with OwnedIf
7 years ago
Jules Villard 902de9d6e3 [sil] make return value and type mandatory
7 years ago
Nikos Gorogiannis dab8e2f17d [starvation] Catch indirect blocks to the UI thread
7 years ago
Jules Villard ce0ffaf877 [ocaml] detect and kill dead modules
7 years ago
Nikos Gorogiannis e0a61c0a4a [starvation] Move to a cluster checker phase for reporting
7 years ago
Sam Blackshear ebc364a801 [racerd] precondition -> snapshot
7 years ago
Sam Blackshear 771e1b7c14 [racerd] remove redundant access field from reported_access
7 years ago
Sam Blackshear 501577defc [racerd] use set of access snapshots instead of map
7 years ago
Nikos Gorogiannis 63aafd3381 [starvation] catch calls to View.getVisibleDisplayFrame
7 years ago
Nikos Gorogiannis e5265ea85b [starvation] surface caller of blocking calls in reports
7 years ago
Sam Blackshear cfd9802d89 [racerd] `Precondition` -> `OwnershipPrecondition`
7 years ago
Jules Villard 507a4c9bec [racerd] remove dead export
7 years ago
Nikos Gorogiannis a4a1a9c55e [starvation] Catch java IO blocking calls on UI thread
7 years ago
Nikos Gorogiannis 7a9009e467 [starvation] Catch CountDownLatch.await calls on main thread
7 years ago
Sam Blackshear f7ee0c2a2d [racerd] use `ThreadsDomain.astate` instead of bool in `AccessData`
7 years ago
Sam Blackshear fb4f9a286a [infer] `AccessData` -> `AccessSnapshot`
7 years ago
Nikos Gorogiannis b6c8766b11 [starvation] report binder calls on ui thread
7 years ago
Josh Berdine 16988b0a7a [ocamlformat] Upgrade to ocamlformat 0.5
7 years ago
Sam Blackshear 8084c8fec7 [racerd] treat `@InjectProp` formals as owned
7 years ago
Sam Blackshear ce8f958522 [racerd] don't report INTERFACE_NOT_THREAD_SAFE if the receiver of the interface call is marked `ThreadConfined`
7 years ago
Nikos Gorogiannis 346589f1fb [starvation] track on-main-thread status in summaries
7 years ago
Nikos Gorogiannis 0130c09dfc [starvation] add infrastructure for blocking events other than lock acquisition
7 years ago
Nikos Gorogiannis 269a1a9b93 [starvation] treat locks in (and accessed from) inner classes properly
7 years ago
Mehdi Bouaziz 4aefa6f76b Debug: session name
7 years ago
Nikos Gorogiannis 462c2e2b2e [starvation] fix handling of static synchronized methods and static locks
7 years ago
Nikos Gorogiannis b11dd03fb9 [starvation] ignore local/temp variables as locks
7 years ago
Nikos Gorogiannis b335fb9c50 [deadlock] rebrand to starvation
7 years ago
Jules Villard 6f187a954c base and IR build separately, biabduction/ directory
7 years ago
Sam Blackshear d840e5da94 [racerd] simplify reconciliation of caller/callee thread context
7 years ago
Nikos Gorogiannis fe43dc2080 [deadlock] analysis and reporting
7 years ago
Sam Blackshear 89a6d7e20d [racerd] don't report races in third-party code
7 years ago
Nikos Gorogiannis 3bcfbd6a64 [deadlock] abstract domain
7 years ago
Daiva Naudziuniene 4157ba820a [HIL] Implicit dereference in access expression
7 years ago
Sam Blackshear ddc354df39 [IR] utility function for detecting when Var appears in source code
7 years ago
Josh Berdine 3534838b73 [ocamlformat] Upgrade to ocamlformat 0.4
7 years ago
Nikos Gorogiannis c34ff07375 [racerd] fix lock count treatment at method calls
7 years ago
Sam Blackshear 4799fb6b82 [racerd] skeleton for testing access path stability
7 years ago
Ilya Sergey b41a059609 [racerd] More precise traking of LHS when calling a method for stability checking in RacerD.
7 years ago
Ilya Sergey 4633cd03c4 [racerd] Instrumenting the concurrency analysis with tracking of access path stability.
7 years ago
Nikos Gorogiannis 519306a049 [racerd] move appropriate functions to Models.
7 years ago
Daiva Naudziuniene 5ebc6562ee [HIL] AccessExpression on the left hand side of assignment
7 years ago