devel/py-crosshair-tool 0.0.110 FreeBSD
Analyze Python code for correctness using symbolic execution
- System
- FreeBSD
- Repository
- FreeBSD ports
- Maintainer
- [email protected]
- Last update
- Commit
1f557293eb- License
- MIT
- Categories
- devel, python
- Package size
- 1290.5 KiB, 8247.7 KiB installed
Description
CrossHair is an analysis tool for Python that blurs the line between testing and type systems.
If you have a function with type annotations and add a contract in a supported syntax, CrossHair will attempt to find counterexamples for you.
CrossHair works by repeatedly calling your functions with symbolic inputs. It uses an SMT solver (a kind of theorem prover) to explore viable execution paths and find counterexamples for you. This is not a new idea; a Python approach was first described in this paper. However, to my knowledge, CrossHair is the most complete implementation: it can use symbolic reasoning for the built-in types, user-defined classes, and much of the standard library.
In the other systems
The newest version among them is 0.0.110, as upstream numbers it.
| System | Port | Version | Vulnerabilities | Status | Maintainer | Last update |
|---|---|---|---|---|---|---|
| FreeBSD | devel/py-crosshair-tool | 0.0.110 newest | none known | - | [email protected] | 2026-08-24 |
| HardenedBSD | devel/py-crosshair-tool | 0.0.110 newest | no data | - | [email protected] | - |
| GhostBSD | devel/py-crosshair-tool | 0.0.110 newest | no data | - | [email protected] | - |
Version history 3
Upstream's version as each commit to the port's Makefile set it, or as this site first saw it in the system's packages; the tree's own revisions are not versions here.
Install
Binary package:
pkg install py312-crosshair-tool
From the ports tree:
cd /usr/ports/devel/py-crosshair-tool/ && make install clean
To depend on this port in another port's Makefile:
RUN_DEPENDS= py312-crosshair-tool>0:devel/py-crosshair-tool
Packages
The version each package repository carries. “-” means the repository builds no package of it, “n/a” that there is no such repository.
| Repository | aarch64 | amd64 | armv6 | armv7 | i386 |
|---|---|---|---|---|---|
| FreeBSD:14:latest | 0.0.110 | 0.0.110 | - | 0.0.94 | 0.0.110 |
| FreeBSD:14:quarterly | 0.0.110 | 0.0.110 | n/a | 0.0.88 | 0.0.110 |
| FreeBSD:15:latest | 0.0.110 | 0.0.110 | n/a | 0.0.94 | 0.0.94 |
| FreeBSD:15:quarterly | 0.0.110 | 0.0.110 | n/a | n/a | n/a |
| FreeBSD:16:latest | 0.0.110 | 0.0.110 | n/a | n/a | n/a |
| FreeBSD:16:quarterly | n/a | n/a | n/a | n/a | n/a |
Dependency graph
Ports that need it on the left, what it needs to run on the right; at most 8 of each. "Dependencies" below lists them all.
Dependencies
As this port's Makefile names them.
Build 2
${PYTHON_PKGNAMEPREFIX}setuptools>=61: devel/py-setuptools${PYTHON_PKGNAMEPREFIX}wheel>=0: devel/py-wheel
Runtime 7
${PYTHON_PKGNAMEPREFIX}importlib-metadata>=4.0.0: devel/py-importlib-metadata${PYTHON_PKGNAMEPREFIX}packaging>=0: devel/py-packaging${PYTHON_PKGNAMEPREFIX}pygls>=1.0.0: devel/py-pygls${PYTHON_PKGNAMEPREFIX}typeshed-client>=2.0.5: devel/py-typeshed-client${PYTHON_PKGNAMEPREFIX}typing-extensions>=3.10.0: devel/py-typing-extensions${PYTHON_PKGNAMEPREFIX}typing-inspect>=0.7.1: devel/py-typing-inspect${PYTHON_PKGNAMEPREFIX}z3-solver>=4.13.0.0: math/py-z3-solver
The full lists below include those, and their dependencies in turn.
Build dependencies 16
Run dependencies 23
- archivers/liblz4
- archivers/zstd
- devel/gettext-runtime
- devel/libffi
- devel/py-attrs
- devel/py-cattrs
- devel/py-importlib-metadata
- devel/py-lsprotocol
- devel/py-mypy_extensions
- devel/py-packaging
- devel/py-pygls
- devel/py-typeshed-client
- devel/py-typing-extensions
- devel/py-typing-inspect
- devel/py-zipp
- devel/readline
- lang/python312
- lang/python315
- math/mpdecimal
- math/py-z3-solver
- math/z3
- print/indexinfo
- textproc/expat2
Configuration
No options to configure.
- USES
- python
- Service scripts
- none
Files
distinfo 1
| File | Size | SHA256 |
|---|---|---|
| crosshair_tool-0.0.110.tar.gz | 628630 | fc0dd25117309728bf6fe304ed6ffce906a6b6aefc6c275b5bbb6cc7186367b3 |
Master sites 1
- PYPI