C4 linearization algorithm and helpers #1466

Closed
fare wants to merge 11 commits from v0.19-c4 into v0.19-staging
Owner

The C4 linearization algorithm, updated:

  • C3 linearization (which we were already using)
  • support for "suffix" vs "infix" specifications (i.e. struct vs classes, which we had of late)
  • Better O(dn) instead of O(d²n²) asymptotic performance
  • Support for the local order being an arbitrary partial order, not necessarily total.

Helpers:

  • move the old v0.18 std/misc/hash to std/hash/misc (instead of std/hash) and std/hash-tables becomes std/hash/types
  • implement a new with-id, in between the old with-id (of std/sugar) and the new with-identifiers
The C4 linearization algorithm, updated: - C3 linearization (which we were already using) - support for "suffix" vs "infix" specifications (i.e. struct vs classes, which we had of late) - Better O(dn) instead of O(d²n²) asymptotic performance - Support for the local order being an arbitrary partial order, not necessarily total. Helpers: - move the old v0.18 std/misc/hash to std/hash/misc (instead of std/hash) and std/hash-tables becomes std/hash/types - implement a new with-id, in between the old with-id (of std/sugar) and the new with-identifiers
fare added 34 commits 2026-06-16 15:19:32 +00:00
This started as a rework of the logging system, but it has expanded to
touch some other aspects... to the point that it kickstarted the v0.19
development branch.

Lot's of things changing, this is just the base

---------

Co-authored-by: François-René Rideau <fare@tunes.org>
Co-authored-by: Francois-Rene Rideau <fare@tunes.org>
Reviewed-on: #1431
basic format writer implementation and all its dependencies..
also introduces some important changes in the mop as far as interface repr is concerned and a couple of fixes.

Reviewed-on: #1432
improve the handling of lifted contract checks in the compiler

Reviewed-on: #1433
implement format as generic serde serializer

Reviewed-on: #1434
Implement a reader that can read format output

Co-authored-by: vyzo <vyzo@hackzen>
Reviewed-on: #1435
Reviewed-by: François-René Rideau <fare@noreply.git.cons.io>
binary serialization protocol

Reviewed-on: #1440
Reviewed-by: François-René Rideau <fare@noreply.git.cons.io>
walk in the middle of the night from this

Reviewed-on: #1442
Reviewed-on: #1443
Reviewed-by: François-René Rideau <fare@noreply.git.cons.io>
Resolves implicit declaration build errors on FreeBSD by including the required header.

Reviewed-on: #1447
Reviewed-by: vyzo <vyzo@noreply.git.cons.io>
Resolves an unbound identifier error in socket.ss on FreeBSD by exporting FD_CLOEXEC.

Reviewed-on: #1448
Reviewed-by: vyzo <vyzo@noreply.git.cons.io>
brings the ssl lib to v19... and this pulls in a whole lot of things just to run the tests

Co-authored-by: Francois-Rene Rideau <fare@tunes.org>
Reviewed-on: #1446
Reviewed-on: #1451
Reviewed-by: François-René Rideau <fare@noreply.git.cons.io>
Reviewed-on: #1455
Reviewed-by: vyzo <vyzo@noreply.git.cons.io>
A bug was introduced were the compiler failed to match opt/kw lambda names after genident started prefixing fresh identifiers.

Reviewed-on: #1456
Reviewed-by: François-René Rideau <fare@noreply.git.cons.io>
regenerate bootstrap, it was faulty

Reviewed-on: #1457
Reviewed-on: #1454
Reviewed-by: François-René Rideau <fare@noreply.git.cons.io>
Reviewed-on: #1458
Reviewed-by: François-René Rideau <fare@noreply.git.cons.io>
Reviewed-on: #1461
Reviewed-by: vyzo <vyzo@noreply.git.cons.io>
so that handlers can easily log at the right place

Reviewed-on: #1463
closes #1462

Reviewed-on: #1464
Reviewed-by: vyzo <vyzo@noreply.git.cons.io>
Reviewed-on: #1465
Reviewed-by: vyzo <vyzo@noreply.git.cons.io>
vyzo changed target branch from master to v0.19-staging 2026-06-16 15:21:04 +00:00
fare closed this pull request 2026-06-16 15:25:42 +00:00

Pull request closed

Sign in to join this conversation.
No description provided.