1.0.0 (2024-02-12)
https://discuss.ocaml.org/t/learn-ocaml-1-0-is-out/14100
⚠ BREAKING CHANGES
- Implement pre-compilation of exercises and graders.
Prefix pre-compilation indicates the related commits below (sorted in chronological order). - Remove doc tutorial on
depend.txt
(it will need rewriting; relying on the new server engine).
Features
- pre-compilation: Implement pre-compilation of exercises and graders (b03bdfe)
- pre-compilation: Enable downloading for only the relevant artifacts (bc or js) (47d5a06)
- pre-compilation: Include Prelude/Prepare and shadow them (787840b)
- pre-compilation: ppx-metaquot: Add transformation introducing the
register_sampler
calls (3cd75f5) - pre-compilation: Restore compatibility with static deployment (f0e8346)
- pre-compilation: Add support for a
test_libs.txt
file in exercises (d22a788) - pre-compilation: Preprocessing and typing of samplers and printers (e768616)
- pre-compilation: Provide lib to compile grader helper libraries (3fc41ca)
- server: add a
--replace
option (82d9bea) - grader: Show a status line on what is being built (995a79d)
- CI: static-binaries: Deploy artifacts to GitHub Pages (01eae90^..9cf5486), closes #575
- pre-compilation: CLI: Add CLI option
learn-ocaml build --build-dir=[./_learn-ocaml-build]
to increase compatibility with existing workflows (#585) (6535692)
Bug Fixes
- grading: avoid failing on sampling arrays with unique elements (6a3ce07)
- pre-compilation: Fix a small race condition in builder (87ee902)
- pre-compilation: Properly type samplers (a97f813)
- pre-compilation: Avoid double-printing of internal grader errors (7422ca4)
- pre-compilation: Fix segfault on graders using samplers returning newly defined exceptions (c61a4d0)
- pre-compilation: Be more precise on the definition and lookup of samplers (7825a6b)
- pre-compilation: Fix printer registration in the grader (7d27523)
- pre-compilation: Do some cleanup & Fix
mutation_testing
test lib (c432909) - pre-compilation: Allow printer registration in prepare/prelude & Fix print callbacks' usage (1ec3af6)
- pre-compilation: dune: Fix dune dependency glitch on recompilation of
mutation_test
(32ad13e) - pre-compilation: docker: Include jsoo in Dockerfile, which is now needed (466e80c)
- pre-compilation: CI: Fix permission issues (fa2cd23)
- pre-compilation: Expose
prepare.ml
file (365cbb7) - pre-compilation: partition-view: Reactivate the feature (57ca10b)
- pre-compilation: CLI: Report JSON parse error origin and locations (ee57ac1)
- pre-compilation: grader:: Add a safeguard against grading workers going haywire (cb417d1)
- pre-compilation: grader: allow exercises to use vg, gg (ead187e)
- pre-compilation: partition-view: use newer asak compatible with precompilation (942edc2)
- pre-compilation: build: update lockfiles (f1abb7d)
- pre-compilation: CI: attempt to fix running the docker image on the corpus (b94f053)
- pre-compilation: CI: disable compat tests with 0.12, 0.13 (91a418e)
- pre-compilation: docker: install more libs in server image (6ce797f)
- pre-compilation: grader: avoid errors with too many open files on parallel builds (6583af4)
- server: Avoid using
lsof -Q
which is only available from lsof 4.95.0 (a242084), closes #580 - UI: Small CSS fix for exercise lists on small screens (3c9c123), closes #574
- server: Do exercise recompilation correctly with
--replace
(#584) (fe2a806), closes #583
Performance Improvements
- pre-compilation: Make
learn-ocaml build
parallel by default (eaad14c) - pre-compilation: Dump the cmis for grading only once (e63359e)
Code Refactoring
- pre-compilation: Get rid of the pseudo-cipher (2792faf)
- pre-compilation: Rename and generalise
recorder
toppx_autoregister
(99e913d) - pre-compilation: Generalize sampler typing (264db4c)
- pre-compilation: Disable debug flags (54851dd)
Build System
- pre-compilation: Make
make testrun
parallel (46631d8)
CI/CD
- release.yml: Replace
hub
(not installed anymore) withgh
(cad060f) - release.yml: Next release version will be 1.0.0 (6e9cd2b)
Documentation
- pre-compilation: translations: Update French translation (f028b75)
- pre-compilation: Remove doc tutorial on
depend.txt
(it will need rewriting) (9155145) - pre-compilation: Update doc for pre-compiled exercises +
test_libs.txt
(2c89d9e) - pre-compilation: Add/Update copyright headers (5b4e0ab)
- pre-compilation: Update index.md (f572990)