notbugAs an Amazon Associate I earn from qualifying purchases.
Want a good read? Try FreeBSD Mastery: Jails (IT Mastery Book 15)
Want a good monitor light? See my photosAll times are UTC
Remember
I remember
I started running short on disk space for the non-production FreshPorts hosts. This time, I have decided to ask for donations. See my recent blog post which points to my Patreon account.
Port details
py-crosshair-tool Analyze Python code for correctness using symbolic execution
0.0.97 devel on this many watch lists=0 search for ports that depend on this port Find issues related to this port Report an issue related to this port View this port on Repology. pkg-fallout 0.0.95Version of this port present on the latest quarterly branch.
Maintainer: sunpoet@FreeBSD.org search for ports maintained by this maintainer
Port Added: 2024-10-14 05:30:14
Last Update: 2025-11-01 17:23:22
Commit Hash: 1403bb7
Also Listed In: python
License: MIT
WWW:
https://crosshair.readthedocs.io/en/latest/
https://github.com/pschanely/CrossHair
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.
HomepageHomepage    cgit ¦ Codeberg ¦ GitHub ¦ GitLab ¦ SVNWeb - no subversion history for this port

Manual pages:
FreshPorts has no man page information for this port.
pkg-plist: as obtained via: make generate-plist
There is no configure plist information for this port.
USE_RC_SUBR (Service Scripts)
  • no SUBR information found for this port
Dependency lines:
  • ${PYTHON_PKGNAMEPREFIX}crosshair-tool>0:devel/py-crosshair-tool@${PY_FLAVOR}
To install the port:
cd /usr/ports/devel/py-crosshair-tool/ && make install clean
To add the package, run one of these commands:
  • pkg install devel/py-crosshair-tool
  • pkg install py311-crosshair-tool
NOTE: If this package has multiple flavors (see below), then use one of them instead of the name specified above.
NOTE: This is a Python port. Instead of py311-crosshair-tool listed in the above command, you can pick from the names under the Packages section.
PKGNAME: py311-crosshair-tool
Package flavors (<flavor>: <package>)
  • py311: py311-crosshair-tool
distinfo:
TIMESTAMP = 1759774597 SHA256 (crosshair_tool-0.0.97.tar.gz) = 7e121bbbd2a11710f3d3bd62ae18245d8bd7959dc2c8b262bd523aafa165509b SIZE (crosshair_tool-0.0.97.tar.gz) = 472846

Packages (timestamps in pop-ups are UTC):
py311-crosshair-tool
ABIaarch64amd64armv6armv7i386powerpcpowerpc64powerpc64le
FreeBSD:13:latest0.0.950.0.97-0.0.950.0.97n/an/an/a
FreeBSD:13:quarterly0.0.950.0.95-0.0.880.0.95n/an/an/a
FreeBSD:14:latest0.0.950.0.97-0.0.940.0.97---
FreeBSD:14:quarterly0.0.950.0.95-0.0.880.0.95---
FreeBSD:15:latest0.0.950.0.97n/a0.0.94n/an/a--
FreeBSD:15:quarterly0.0.950.0.95n/a-n/an/a--
FreeBSD:16:latest0.0.950.0.97n/a-n/an/a--
Dependencies
NOTE: FreshPorts displays only information on required and default dependencies. Optional dependencies are not covered.
Build dependencies:
  1. py311-setuptools>=0 : devel/py-setuptools@py311
  2. py311-wheel>=0 : devel/py-wheel@py311
  3. python3.11 : lang/python311
  4. py311-build>=0 : devel/py-build@py311
  5. py311-installer>=0 : devel/py-installer@py311
Test dependencies:
  1. python3.11 : lang/python311
Runtime dependencies:
  1. py311-importlib-metadata>=4.0.0 : devel/py-importlib-metadata@py311
  2. py311-packaging>=0 : devel/py-packaging@py311
  3. py311-pygls>=1.0.0 : devel/py-pygls@py311
  4. py311-typeshed-client>=2.0.5 : devel/py-typeshed-client@py311
  5. py311-typing-extensions>=3.10.0 : devel/py-typing-extensions@py311
  6. py311-typing-inspect>=0.7.1 : devel/py-typing-inspect@py311
  7. py311-z3-solver>=4.13.0.0 : math/py-z3-solver@py311
  8. python3.11 : lang/python311
This port is required by:
for Run
  1. devel/py-hypothesis
  2. devel/py-hypothesis-crosshair

Configuration Options:
No options to configure
Options name:
devel_py-crosshair-tool
USES:
python
FreshPorts was unable to extract/find any pkg message
Master Sites:
Expand this list (2 items)
Collapse this list.
  1. https://files.pythonhosted.org/packages/source/c/crosshair_tool/
  2. https://pypi.org/packages/source/c/crosshair_tool/
Collapse this list.

Number of commits found: 18

Commit History - (may be incomplete: for full details, see links to repositories near top of page)
CommitCreditsLog message
0.0.97
01 Nov 2025 17:23:22
commit hash: 1403bb7765965eccd644a73cb136a155e46f7ea8commit hash: 1403bb7765965eccd644a73cb136a155e46f7ea8commit hash: 1403bb7765965eccd644a73cb136a155e46f7ea8commit hash: 1403bb7765965eccd644a73cb136a155e46f7ea8 files touched by this commit
Matthias Andree (mandree) search for other commits by this committer
*: Revise USES=python:... version range constraints

and strip all lower bounds of 3.9 or 3.10 because they are implied now.

python:3.9-X  -> python:-X
python:3.9+   -> python
python:3.10-X -> python:-X
python:3.10+  -> python
(options such as ,build preserved)
0.0.97
18 Oct 2025 23:51:51
commit hash: 50a06d3683a9e94c37bf71183abdbb29ed05bb51commit hash: 50a06d3683a9e94c37bf71183abdbb29ed05bb51commit hash: 50a06d3683a9e94c37bf71183abdbb29ed05bb51commit hash: 50a06d3683a9e94c37bf71183abdbb29ed05bb51 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.97

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.96
13 Oct 2025 06:17:15
commit hash: 318f94b58b1bebd7af2fa55d75f2b9ef1006ed48commit hash: 318f94b58b1bebd7af2fa55d75f2b9ef1006ed48commit hash: 318f94b58b1bebd7af2fa55d75f2b9ef1006ed48commit hash: 318f94b58b1bebd7af2fa55d75f2b9ef1006ed48 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.96

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.95
02 Sep 2025 18:00:53
commit hash: 80eb2962c0f6ae014b5ec969fddd9b8a12d48e79commit hash: 80eb2962c0f6ae014b5ec969fddd9b8a12d48e79commit hash: 80eb2962c0f6ae014b5ec969fddd9b8a12d48e79commit hash: 80eb2962c0f6ae014b5ec969fddd9b8a12d48e79 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.95

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.94
12 Aug 2025 18:15:39
commit hash: 4007d4ab20fa10bec66eede6195871022d364147commit hash: 4007d4ab20fa10bec66eede6195871022d364147commit hash: 4007d4ab20fa10bec66eede6195871022d364147commit hash: 4007d4ab20fa10bec66eede6195871022d364147 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.94

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.88
13 Jun 2025 06:03:37
commit hash: a7ebc79bc3f92e6f38ff71cd054ba2e365e7e24fcommit hash: a7ebc79bc3f92e6f38ff71cd054ba2e365e7e24fcommit hash: a7ebc79bc3f92e6f38ff71cd054ba2e365e7e24fcommit hash: a7ebc79bc3f92e6f38ff71cd054ba2e365e7e24f files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.88

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.87
01 Jun 2025 16:23:21
commit hash: d3e8d6f3ab49cf1d1db116cb17d3c44243c75136commit hash: d3e8d6f3ab49cf1d1db116cb17d3c44243c75136commit hash: d3e8d6f3ab49cf1d1db116cb17d3c44243c75136commit hash: d3e8d6f3ab49cf1d1db116cb17d3c44243c75136 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.87

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.86
29 Apr 2025 12:42:29
commit hash: 1bb2d01c42665ffe471d14d569964b44eaa4a166commit hash: 1bb2d01c42665ffe471d14d569964b44eaa4a166commit hash: 1bb2d01c42665ffe471d14d569964b44eaa4a166commit hash: 1bb2d01c42665ffe471d14d569964b44eaa4a166 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.86

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.85
18 Apr 2025 05:37:24
commit hash: 989e72653de312f5bb0bfb09c1085a32df886010commit hash: 989e72653de312f5bb0bfb09c1085a32df886010commit hash: 989e72653de312f5bb0bfb09c1085a32df886010commit hash: 989e72653de312f5bb0bfb09c1085a32df886010 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.85

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.83
09 Apr 2025 13:55:00
commit hash: 1707cfcc936a7d49d7161d0fd7b4fcb51c7c59cccommit hash: 1707cfcc936a7d49d7161d0fd7b4fcb51c7c59cccommit hash: 1707cfcc936a7d49d7161d0fd7b4fcb51c7c59cccommit hash: 1707cfcc936a7d49d7161d0fd7b4fcb51c7c59cc files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.83

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.82
03 Feb 2025 15:51:04
commit hash: 82d683a35ee284354341cdb96d21b99c686fe4a0commit hash: 82d683a35ee284354341cdb96d21b99c686fe4a0commit hash: 82d683a35ee284354341cdb96d21b99c686fe4a0commit hash: 82d683a35ee284354341cdb96d21b99c686fe4a0 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.82

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.81
02 Jan 2025 19:46:31
commit hash: beddaf6f3e1096a4457042e326a84729dccede00commit hash: beddaf6f3e1096a4457042e326a84729dccede00commit hash: beddaf6f3e1096a4457042e326a84729dccede00commit hash: beddaf6f3e1096a4457042e326a84729dccede00 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.81

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.80
31 Dec 2024 15:48:12
commit hash: 3d11ca45c70082ce0c2668ae20315a90475f04d6commit hash: 3d11ca45c70082ce0c2668ae20315a90475f04d6commit hash: 3d11ca45c70082ce0c2668ae20315a90475f04d6commit hash: 3d11ca45c70082ce0c2668ae20315a90475f04d6 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.80

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.79
25 Dec 2024 19:15:22
commit hash: 651e262fabe12bb225fc94138258474282a9471dcommit hash: 651e262fabe12bb225fc94138258474282a9471dcommit hash: 651e262fabe12bb225fc94138258474282a9471dcommit hash: 651e262fabe12bb225fc94138258474282a9471d files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.79

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.78
21 Nov 2024 13:38:05
commit hash: 1826e7e18ddf5f48d6004e9566fe28880d117c13commit hash: 1826e7e18ddf5f48d6004e9566fe28880d117c13commit hash: 1826e7e18ddf5f48d6004e9566fe28880d117c13commit hash: 1826e7e18ddf5f48d6004e9566fe28880d117c13 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.78

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.76
26 Oct 2024 02:01:52
commit hash: 12a1e1e1d394706419eece9ecdb1386460928ea9commit hash: 12a1e1e1d394706419eece9ecdb1386460928ea9commit hash: 12a1e1e1d394706419eece9ecdb1386460928ea9commit hash: 12a1e1e1d394706419eece9ecdb1386460928ea9 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.76

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.75
25 Oct 2024 15:56:43
commit hash: 58c75be23e557cce77b492f11d86bf719d1baa44commit hash: 58c75be23e557cce77b492f11d86bf719d1baa44commit hash: 58c75be23e557cce77b492f11d86bf719d1baa44commit hash: 58c75be23e557cce77b492f11d86bf719d1baa44 files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Update to 0.0.75

- Update WWW

Changes:	https://github.com/pschanely/CrossHair/releases
		https://crosshair.readthedocs.io/en/latest/changelog.html
0.0.74
14 Oct 2024 04:45:08
commit hash: d8f05e1eab204fa83d38addc6efb95d87fac1a1dcommit hash: d8f05e1eab204fa83d38addc6efb95d87fac1a1dcommit hash: d8f05e1eab204fa83d38addc6efb95d87fac1a1dcommit hash: d8f05e1eab204fa83d38addc6efb95d87fac1a1d files touched by this commit
Po-Chuan Hsieh (sunpoet) search for other commits by this committer
devel/py-crosshair-tool: Add py-crosshair-tool 0.0.74

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.

Number of commits found: 18