Skip to content

Initialize big object header properly#269

Merged
kpamnany merged 1 commit into
v1.10.2+RAIfrom
kp-fix-gcbol
Dec 12, 2025
Merged

Initialize big object header properly#269
kpamnany merged 1 commit into
v1.10.2+RAIfrom
kp-fix-gcbol

Conversation

@kpamnany
Copy link
Copy Markdown

@kpamnany kpamnany commented Dec 8, 2025

PR Description

Prevent uninitialized memory from causing an assertion failure.

Checklist

Requirements for merging:

Prevent uninitialized memory from causing an assertion failure.
@kpamnany kpamnany merged commit 2aa915d into v1.10.2+RAI Dec 12, 2025
3 checks passed
@kpamnany kpamnany deleted the kp-fix-gcbol branch December 12, 2025 01:09
github-actions Bot pushed a commit that referenced this pull request Apr 4, 2026
Introduces the `typegroup` syntax that allows multiple type
definitions to reference each other cyclically, solving a limitation
dating back to 2011 (issue #269).

The fundamental construct uses a `typegroup` block:

```julia
typegroup
    struct Node
        edges::Vector{Edge}
    end

    struct Edge
        from::Node
        to::Node
    end
end
```

See the documentation for further examples. The fundamental
semantics here are that all (mutable) struct definitions
within the block have their names introduced at the top of
the block and then get created as a unit (constructor
definitions are deferred until all types are defined).

There was significant discussion about the correct semantics
for this (see JuliaLang#60569),
but what we ended up with is that there is that before the
types are created, the type names are `TypeVar`s and there's
a special new `TypeApp` that represents lazy type application
(which is not otherwise part of our Type algebra).
Instantiation, everything then gets resolved together.

Fixes #269

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants