# self-hosted: rework the memory layout of ir.Module and related types · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/619159cf48e953ca65933391313a72c392007710)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: 619159cf48e953ca65933391313a72c392007710

Requested commit: 619159cf48e953ca65933391313a72c392007710

Commit: 619159cf48e953ca65933391313a72c392007710

Tree: 315cb12cff807374cd8fbbad3c06107241633565

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
self-hosted: rework the memory layout of ir.Module and related types

 * add TypedValue.Managed which represents a Type, a Value, and some
   kind of memory management strategy.
 * introduce an analysis queue
 * flesh out how incremental compilation works with respect to exports
 * ir.text.Module is only capable of one error message during parsing
 * link.zig no longer has a decl table map and instead has structs that
   exist directly on ir.Module.Decl and ir.Module.Export
 * implement primitive .text block allocation
 * implement linker code for updating Decls and Exports
 * implement null Type

Some supporting std lib changes:
 * add std.ArrayList.appendSliceAssumeCapacity
 * add std.fs.File.copyRange and copyRangeAll
 * fix std.HashMap having modification safety on in ReleaseSmall builds
 * add std.HashMap.putAssumeCapacityNoClobber

```

## Parents

- [a32d3a85d21d614e5960b9eadcd85374954b910f](https://git.cafe/gitcafe/zig/commit/a32d3a85d21d614e5960b9eadcd85374954b910f?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/619159cf48e953ca65933391313a72c392007710?format=markdown)
