Fix nREPL on Windows; add a version string
The nREPL server bound its loopback socket through libc process symbols, which don't carry the socket entry points on Windows — they live in ws2_32.dll and aren't in joltc.exe's export table, so --nrepl-server died with "no entry for socket". Load ws2_32 before the foreign bindings there, call WSAStartup once, and use Winsock's closesocket and int-typed recv/send. Also fix SOL_SOCKET/SO_REUSEADDR, which the old macos-only check got wrong on Windows. Bake a version string into the self-contained binary at build time (from $JOLT_VERSION, else git describe) and expose it via jolt.host/jolt-version: --version / -V print it, and it shows in --help, the repl banner, and the nREPL startup line. Dev runs off bin/joltc read it from git describe. Add -e to the help output.
This commit is contained in:
parent
5467c1d98d
commit
4398e2cf6c
6 changed files with 93 additions and 15 deletions
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
|
|
@ -154,6 +154,10 @@ jobs:
|
|||
# dev-machine check — see jolt-8479). `make joltc-release`, not `make joltc`.
|
||||
- name: Build joltc (release)
|
||||
run: make joltc-release
|
||||
env:
|
||||
# Bake the release tag into the binary (build-joltc falls back to
|
||||
# `git describe` when this is empty, e.g. a workflow_dispatch dry run).
|
||||
JOLT_VERSION: ${{ startsWith(github.ref, 'refs/tags/') && github.ref_name || '' }}
|
||||
|
||||
- name: Inspect the binary (Windows)
|
||||
if: runner.os == 'Windows'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue