The HTTP server moves out of the host into the jolt-lang/ring-janet-adapter library, which binds sockets itself via jolt.ffi and shuts down cleanly. Drop host/chez/http-server.ss and the obsolete ffi-server-test (the FFI collect-safe path is covered by ffi-binding-test; the server by the adapter's own CI).
64 lines
2.1 KiB
Makefile
64 lines
2.1 KiB
Makefile
# jolt — Clojure on Chez Scheme. Single substrate, no Janet.
|
|
#
|
|
# bin/joltc runs jolt directly off the checked-in seed (host/chez/seed/); there is no
|
|
# build step. `make test` is the full gate. `make remint` rebuilds the seed after a
|
|
# source change.
|
|
|
|
.PHONY: test ci values corpus unit smoke selfhost sci certify ffi transient remint
|
|
|
|
# Full gate (dev machine). Includes the self-host byte-fixpoint, which only holds
|
|
# on the same Chez that minted the seed.
|
|
test: selfhost ci
|
|
@echo "OK: all gates passed"
|
|
|
|
# CI gate: behavior only. The checked-in seed is a minted artifact (like a
|
|
# lockfile) — it RUNS correctly on any Chez, but `selfhost` rebuilds it and a
|
|
# different Chez version may emit byte-different (gensym/order) output, so the
|
|
# byte-fixpoint is a dev-machine check, not a CI one (jolt-8479).
|
|
ci: values corpus unit smoke sci ffi transient certify
|
|
@echo "OK: CI gates passed"
|
|
|
|
# Self-host fixpoint: bootstrap.ss rebuild == checked-in seed.
|
|
selfhost:
|
|
@sh host/chez/selfcheck.sh
|
|
|
|
# Value-model unit tests (nil/truthiness/collections on Chez).
|
|
values:
|
|
@chez --script test/chez/values-test.ss
|
|
|
|
# Corpus conformance vs JVM-sourced expecteds (allowlist + floor).
|
|
corpus:
|
|
@chez --script host/chez/run-corpus.ss
|
|
|
|
# Host-specific unit cases.
|
|
unit:
|
|
@chez --script host/chez/run-unit.ss
|
|
|
|
# Real-CLI smoke over bin/joltc.
|
|
smoke:
|
|
@sh host/chez/smoke.sh
|
|
|
|
# SCI conformance: load borkdude/sci's source through joltc (floor-gated).
|
|
sci:
|
|
@chez --script host/chez/run-sci.ss
|
|
|
|
# FFI: bind native functions (typed foreign-procedure), memory, and that a
|
|
# :blocking call is collect-safe (a parked thread doesn't pin the collector).
|
|
ffi:
|
|
@chez --script test/chez/ffi-binding-test.ss
|
|
|
|
# Transients: mutable backing, snapshot on persistent!, and linear-time builds.
|
|
transient:
|
|
@chez --script test/chez/transient-test.ss
|
|
|
|
# JVM oracle: certify the corpus against reference Clojure. Skips if clojure absent.
|
|
certify:
|
|
@if command -v clojure >/dev/null 2>&1; then \
|
|
clojure -M test/conformance/certify.clj; \
|
|
else \
|
|
echo "certify: clojure not on PATH — skipped"; \
|
|
fi
|
|
|
|
# Re-mint the seed after changing a seed source (reader/analyzer/backend/core).
|
|
remint:
|
|
@sh host/chez/remint.sh
|