jlanguage
The J programming language, installable with pip. This is an unofficial packaging, not affiliated with Jsoftware: J's home page is jsoftware.com and its official source is jsoftware/jsource. These wheels repackage the official J binary releases, unmodified, so that pip install jlanguage gives you a working J on Linux (x86_64, aarch64), macOS (Intel and Apple Silicon), and Windows (amd64, arm64).
Usage
pip install jlanguage
jconsole
That starts the standard J console REPL:
+/ % # 1 2 3 4
0.25
python -m jlang does the same thing, useful when scripts aren't on your PATH. From Python, jlang.path() returns the install directory (containing bin/, system/, addons/, tools/) and jlang.jconsole_path() the full path to the executable.
Versioning
The package version is the J version: jlanguage 9.7.1 installs J 9.7.1. Packaging-only fixes are released as post versions (9.7.1.post1).
How it's built
make_wheels.py downloads each platform's release archive from jsoftware.com, verifies it against the published sha256sums, and writes it into a platform-tagged wheel, following the approach of ziglang/zig-pypi. Nothing is compiled and the binaries are byte-identical to the official ones.
License
J is © Jsoftware Inc. and distributed under the GPLv3 (see jsoftware/jsource). This package redistributes the official binaries unmodified.
Releasing a new version
When Jsoftware publishes a new J release:
- Update
JVERinmake_wheels.py. The download URL is derived from it, so nothing else normally changes; do check the archive names against the install dir since the suffixes have changed between releases (9.6.3 usedlinux64, 9.7.1 useslinux). - Run
python make_wheels.py. It downloads each platform archive (cached indownloads/), verifies it against the published sha256sums, and writes the wheels todist/. - Run
pytest -q, thentwine upload dist/*.whl.
For a packaging-only fix to an already-released J version, append .postN to the version.
Release files for jlanguage 9.7.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| jlanguage-9.7.1-py3-none-win_arm64.whl | Python 3 | none | Windows ARM64 | Details |
| jlanguage-9.7.1-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| jlanguage-9.7.1-py3-none-manylinux_2_38_aarch64.whl | Python 3 | none | Linux glibc 2.38+ ARM64 | Details |
| jlanguage-9.7.1-py3-none-manylinux_2_34_x86_64.whl | Python 3 | none | Linux glibc 2.34+ x86-64 | Details |
| jlanguage-9.7.1-py3-none-macosx_10_9_universal2.whl | Python 3 | none | macOS 10.9+ universal2 (ARM64, x86-64) | Details |
Total release size: 29.4 MB
Release files / jlanguage-9.7.1-py3-none-win_arm64.whl
| Download URL | jlanguage-9.7.1-py3-none-win_arm64.whl |
|---|---|
| Size | 5.7 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
af18b17a21ec55a1265a7c764f1c1293bb6b06744e8311c89d13f99ba2eb9a7b
|
|
BLAKE2b-256 checksum How to use checksums |
0ab888544e14cbc74cc79dfb96e1c929f77abf33c64d75947be7a887e4cb19ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Release files / jlanguage-9.7.1-py3-none-win_amd64.whl
| Download URL | jlanguage-9.7.1-py3-none-win_amd64.whl |
|---|---|
| Size | 6.6 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
fe15285ae072b7c548c34015ed6a052be174a974ed4cf71026e844a6cbd2eaab
|
|
BLAKE2b-256 checksum How to use checksums |
7d61071b9bd4355bd7c39a9b0e5fda30012fcf06da6c67c6da74de7a889da1b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Release files / jlanguage-9.7.1-py3-none-manylinux_2_38_aarch64.whl
| Download URL | jlanguage-9.7.1-py3-none-manylinux_2_38_aarch64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | Linux glibc 2.38+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
da9156a88b9e7a2ae7a449c7b020fcc9804ac3a00ab5c503aa7614d33e3ddacf
|
|
BLAKE2b-256 checksum How to use checksums |
c8d65f508079a6044fb6897144cc07b77bbd2fab76b1d194428999cbdcb7a612
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Release files / jlanguage-9.7.1-py3-none-manylinux_2_34_x86_64.whl
| Download URL | jlanguage-9.7.1-py3-none-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 5.2 MB |
| Tags | Linux glibc 2.34+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
46f24784ae108f5f5eaea07f73b4df10829292f0cc668377e9fd9e054ebfb7d9
|
|
BLAKE2b-256 checksum How to use checksums |
fa3b7ffe6e3a6be55688887969666e44732254927eedd675ca27859e329ff019
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Release files / jlanguage-9.7.1-py3-none-macosx_10_9_universal2.whl
| Download URL | jlanguage-9.7.1-py3-none-macosx_10_9_universal2.whl |
|---|---|
| Size | 7.2 MB |
| Tags | Python 3 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
6e4e0b4e67dcf34d24a0bc6a132044e5681d28eb33ebe45185f2c7dba40c605d
|
|
BLAKE2b-256 checksum How to use checksums |
0b31a45b1c754c654e8861c642041f487345c847787c7b6cfcf4bd9e59840923
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|