🌐 US-Proxy
class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
Skip to content

Minor errors in 3.0 binary format #2041

Open

Description

@conrad-watt
  1. The third (recursive) case of the binary definition of sN should have i:s instead of i:u

  1. (arguable?) The module binary definition uses * everywhere for all the section lists, but the typeid and code sections should have a distinguished arity to make in unambiguous that they must have the same number of entries as each other (while other sections are allowed to have different sizes) - 2.0 used n.

These were found while hand-mechanising part of the binary format in Isabelle.

Activity

  1. rossberg commented on Dec 8, 2025

    @rossberg
    Member

    Ah thanks. (1) is fixed in 6e4c4bc.

    Re (2), that should actually be working as intended, since the side condition (𝑓𝑢𝑛𝑐 = func 𝑡𝑦𝑝𝑒𝑖𝑑𝑥 𝑙𝑜𝑐𝑎𝑙* 𝑒𝑥𝑝𝑟)* already implies the constraint |𝑡𝑦𝑝𝑒𝑖𝑑𝑥*| = |𝑙𝑜𝑐𝑎𝑙**| = |𝑒𝑥𝑝𝑟*|, otherwise it wouldn't be defined. But admittedly that's subtle.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions