| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2024-08-13 | elf: write offset table entry if dirty | Jakub Konka | |
| 2024-08-13 | elf: allocate new offset table via Atom.allocate mechanism | Jakub Konka | |
| 2024-08-13 | elf: introduce OffsetTable in ZigObject for funcs only | Jakub Konka | |
| 2024-08-12 | all: Handle spirv in addition to spirv(32,64) where applicable. | Alex Rønne Petersen | |
| Some of this is arbitrary since spirv (as opposed to spirv32/spirv64) refers to the version with logical memory layout, i.e. no 'real' pointers. This change at least matches what clang does. | |||
| 2024-08-12 | std.Target: Rename glsl450 Arch tag to opengl. | Alex Rønne Petersen | |
| Versions can simply use the normal version range mechanism, or alternatively an Abi tag if that makes more sense. For now, we only care about 4.5 anyway. | |||
| 2024-08-11 | compiler: split Decl into Nav and Cau | mlugg | |
| The type `Zcu.Decl` in the compiler is problematic: over time it has gained many responsibilities. Every source declaration, container type, generic instantiation, and `@extern` has a `Decl`. The functions of these `Decl`s are in some cases entirely disjoint. After careful analysis, I determined that the two main responsibilities of `Decl` are as follows: * A `Decl` acts as the "subject" of semantic analysis at comptime. A single unit of analysis is either a runtime function body, or a `Decl`. It registers incremental dependencies, tracks analysis errors, etc. * A `Decl` acts as a "global variable": a pointer to it is consistent, and it may be lowered to a specific symbol by the codegen backend. This commit eliminates `Decl` and introduces new types to model these responsibilities: `Cau` (Comptime Analysis Unit) and `Nav` (Named Addressable Value). Every source declaration, and every container type requiring resolution (so *not* including `opaque`), has a `Cau`. For a source declaration, this `Cau` performs the resolution of its value. (When #131 is implemented, it is unsolved whether type and value resolution will share a `Cau` or have two distinct `Cau`s.) For a type, this `Cau` is the context in which type resolution occurs. Every non-`comptime` source declaration, every generic instantiation, and every distinct `extern` has a `Nav`. These are sent to codegen/link: the backends by definition do not care about `Cau`s. This commit has some minor technically-breaking changes surrounding `usingnamespace`. I don't think they'll impact anyone, since the changes are fixes around semantics which were previously inconsistent (the behavior changed depending on hashmap iteration order!). Aside from that, this changeset has no significant user-facing changes. Instead, it is an internal refactor which makes it easier to correctly model the responsibilities of different objects, particularly regarding incremental compilation. The performance impact should be negligible, but I will take measurements before merging this work into `master`. Co-authored-by: Jacob Young <jacobly0@users.noreply.github.com> Co-authored-by: Jakub Konka <kubkon@jakubkonka.com> | |||
| 2024-08-10 | Wasm: handle ref to an extern in getDeclVAddr | Jakub Konka | |
| 2024-08-10 | Coff: handle ref to an extern in getDeclVAddr | Jakub Konka | |
| 2024-08-10 | MachO/ZigObject: handle ref to an extern in getDeclVAddr | Jakub Konka | |
| 2024-08-10 | Elf/ZigObject: handle ref to an extern in getDeclVAddr | Jakub Konka | |
| Prior to this change, we would unconditionally create a symbol and atom pair for a Decl that could point to an extern, in which case no atom can be created. | |||
| 2024-08-10 | macho: ensure we only ever put named symbols in the symtab | Jakub Konka | |
| 2024-08-10 | elf: ensure we only ever put named symbols in the symtab | Jakub Konka | |
| 2024-08-07 | elf: remove stale code | Jakub Konka | |
| 2024-08-07 | elf: fix off-by-one direct access to symbol resolver in ZigObject | Jakub Konka | |
| 2024-08-07 | elf: actually init symbol resolvers array in ZigObject | Jakub Konka | |
| 2024-08-07 | elf: handle SHN_UNDEF explicitly in ZigObject.resolveSymbols | Jakub Konka | |
| 2024-08-07 | elf: fix .eh_frame calc in relocatable mode | Jakub Konka | |
| 2024-08-07 | elf: start-stop resolution has to come after init output sections | Jakub Konka | |
| 2024-08-07 | elf: fix off-by-one when referring to resolved table directly | Jakub Konka | |
| 2024-08-07 | elf: scan LinkerDefined obj for symbol indirection too | Jakub Konka | |
| 2024-08-07 | elf: get hello-world glibc working again | Jakub Konka | |
| 2024-08-07 | elf: fix symbol resolution for Objects | Jakub Konka | |
| 2024-08-07 | elf: do not re-init Symbol when initializing | Jakub Konka | |
| 2024-08-07 | elf: move getStartStopBasename into Object | Jakub Konka | |
| 2024-08-07 | elf: fix compile errors | Jakub Konka | |
| 2024-08-07 | elf: redo symbol mgmt and ownership in ZigObject | Jakub Konka | |
| 2024-08-07 | elf: move symbol ownership to LinkerDefined | Jakub Konka | |
| 2024-08-07 | elf: move symbol ownership to SharedObject | Jakub Konka | |
| 2024-08-07 | elf: move symbol ownership to Object | Jakub Konka | |
| 2024-08-07 | elf: null symbol is obsolete | Jakub Konka | |
| 2024-08-07 | elf: always create symbol extra | Jakub Konka | |
| 2024-08-01 | Merge pull request #20870 from alexrp/target-cleanup-3 | Andrew Kelley | |
| `std.Target`: Remove more dead OS/architecture tags | |||
| 2024-08-01 | Merge pull request #20884 from Rexicon226/riscv | Jakub Konka | |
| 2024-07-31 | remove hard tabs from source code | Andrew Kelley | |
| these are illegal according to the spec | |||
| 2024-07-31 | riscv: fix `.got` symbol loading | David Rubin | |
| 2024-07-30 | elf: fix a typo in setting atom name before it's been allocated | Jakub Konka | |
| 2024-07-30 | elf: remove now unused globalByName | Jakub Konka | |
| 2024-07-30 | elf: include LinkerDefined in symbol resolution | Jakub Konka | |
| 2024-07-30 | elf: move entry tracking into LinkerDefined | Jakub Konka | |
| 2024-07-30 | elf: move initializing and allocating linker-defined symbols into LinkerDefined | Jakub Konka | |
| 2024-07-30 | elf: do not store merge section output section name in strings buffer | Jakub Konka | |
| 2024-07-30 | elf: init output merge sections in a separate step | Jakub Konka | |
| 2024-07-30 | elf: move merge subsections ownership into merge sections | Jakub Konka | |
| 2024-07-30 | elf: simplify output section tracking for symbols | Jakub Konka | |
| 2024-07-30 | elf: atom is always assigned output section index | Jakub Konka | |
| 2024-07-30 | elf: remove obsolete flags from atom | Jakub Konka | |
| 2024-07-30 | elf: resolve COMDATs in more parallel-friendly way | Jakub Konka | |
| 2024-07-30 | elf: skip storing comdat group signature globally | Jakub Konka | |
| 2024-07-30 | elf: move ownership of atoms into objects | Jakub Konka | |
| 2024-07-30 | elf: move ownership of comdat groups to Object | Jakub Konka | |
