Commit Graph
414 Commits
Author SHA1 Message Date
gingerBill 4508144727 Add @(synchronizes_shared=...) for shared locks; Infer @(synchronizes) for wrappers 2026-10-08 22:56:54 +01:00
gingerBill 5de6a99129 Add @(synchronizes=<Enum>); Vet plain writes; Warn on mixed-sized atomics; Count fences in callers and other branches 2026-10-08 17:16:09 +01:00
gingerBill 535132a22e Add @(futex_parameter="name") 2026-10-08 10:46:58 +01:00
gingerBill ecedcbc0bf Add @(futex=.Wait) and @(futex=.Wake) with intrinsics.Futex_Operation, so the atomic analysis checks futex words, and use relaxed ordering for Atomic_Cond's counter 2026-10-07 23:18:02 +01:00
gingerBill 403738e5cd Merge pull request #7802 from odin-lang/bill/compiler-improvements-2026-10
Flow-based Escape Analysis of Stack Memory + Show where parapoly procedures and records were instantiated in errors within them
2026-10-07 21:19:06 +01:00
gingerBill 6413e89d63 Merge pull request #7809 from odin-lang/bill/general-feature-improvements
General Feature Improvements
2026-10-07 17:39:07 +01:00
gingerBill b2aa2457f7 Don't report a deprecated procedure for being named in a procedure group but only when a call selects it 2026-10-07 16:00:01 +01:00
gingerBill 5ff7268cab Add @(align=N) for variables, raising the alignment of globals, locals, @(static) and @(thread_local) variables to at least N 2026-10-07 15:54:21 +01:00
SOBEX 439485507f Fix #7798 by sorting link_names with Procedures before ForeignProcedures 2026-10-07 15:03:20 +02:00
gingerBill a720b0699e Release nested procedures before running the escape analysis on their parent 2026-10-07 13:58:15 +01:00
gingerBill 5522d18745 Skip the escape analysis for an executable's entry point and suggest clearing stores 2026-10-07 13:38:22 +01:00
gingerBill 8ea02cc733 Add flow-based escape analysis of stack memory, reported as warnings 2026-10-07 13:08:22 +01:00
gingerBill e702482f38 Group the per-thread error state into ErrorContext 2026-10-07 11:25:53 +01:00
gingerBill 86502ed7ec Show where parapoly procedures and records were instantiated in errors within them 2026-10-07 11:08:13 +01:00
gingerBill b2b03b68aa Create the file scopes, imports, and canning of whens in parallel 2026-10-05 15:08:35 +01:00
gingerBill ba13344c1f Pass a local declaration's dependencies to those it is in once checked, remove the dependency tree update, find the global initialization order in the background, and stop linking every polymorphic call's scope into its declaration's 2026-10-05 13:20:26 +01:00
gingerBill c500e68445 Pass a nested procedure's dependencies on to every declaration it is nested in so they do not depend on the order the bodies are checked in 2026-10-05 12:35:35 +01:00
gingerBill 8a72e22f03 Allow using on #soa pointers, and make the fields a using #soa pointer parameter promotes assignable 2026-10-04 19:14:17 +01:00
gingerBill 14950b8ae9 Park nested procedures on their parent until its body is checked instead of re-queuing; per-entry #load caches and parallel #load_directory reads; don't merge dependencies into package-level declarations; separate the thread pool's contended fields onto their own cache lines 2026-10-02 12:55:09 +01:00
gingerBill c494c7a503 Check global entity groups in parallel
* CAS-claimed entities, cycle-safe waits for entities and records, lazy entities without lazy_mutex
* Build union type names only on error, take the error block only to report proc group overload errors
2026-10-01 23:17:34 +01:00
gingerBill 73c3a96de1 Make global checking state thread-safe: read-only global scopes, per-group untyped and #soa, deferred link-name checks, fresh contexts for on-demand globals 2026-10-01 21:07:41 +01:00
gingerBill 66c4fe1d49 Decide cycles of global whens by trying every choice of their branches; ambiguous or contradictory cycles are errors 2026-10-01 18:49:51 +01:00
gingerBill 63bd49c88b Add -internal-check-global-edges; Check global entities in dependency-ordered groups of a syntactic graph 2026-10-01 17:28:38 +01:00
gingerBill 38fa57e907 Make global checking and codegen order-independent 2026-10-01 15:01:14 +01:00
gingerBill c6b9f8d998 Try to fix the #+lazy entities 2026-10-01 13:51:40 +01:00
gingerBill b06c5ffa70 Add -internal-global-entity-graph; Fix union type inference bug 2026-10-01 13:42:32 +01:00
Jeroen van Rijn 6332303a0e Add -file suggestion.
When `main` is duplicated or the package names differ, suggest it may be a single `-file` package.
2026-09-24 12:52:45 +02:00
Jeroen van Rijn ec0bd121db Fix redecleration error for globals 2026-09-17 16:20:11 +02:00
gingerBill 07b5c2ee0f Support enable_target_feature and require_target_feature for asm templates 2026-08-31 16:39:17 +01:00
kalsprite f5873e2e84 remove dead inline asm check, now unreachable 2026-08-24 00:40:00 -07:00
kalsprite 40fd892cf5 Reject a named asm template used as a value instead of aborting the compiler 2026-08-24 00:27:26 -07:00
Jeroen van Rijn 830f41e280 Merge pull request #7417 from kalsprite/foreign_sig_named_struct
Fix segfault comparing two foreign declarations of the same symbol
2026-08-22 03:11:27 +02:00
kalsprite f8bdfa0857 Fix segfault comparing two foreign declarations of the same symbol 2026-08-21 17:31:42 -07:00
kalsprite a1b56d7679 Fix compiler segfault on of a type alias that cycles back 2026-08-21 17:00:44 -07:00
kalsprite f17c86d936 diagnostics: let compiler check error() fmt strings + fixes 2026-08-19 15:39:39 -07:00
gingerBill a86e523053 Allow for inlineable asm calls 2026-08-18 14:57:34 +01:00
gingerBill 6646a7b38e Remove redundant code 2026-08-17 19:57:21 +01:00
gingerBill 2738ff640d Minor text fix 2026-08-17 19:56:03 +01:00
gingerBill c3b2029f64 Support asm template groups 2026-08-17 19:54:21 +01:00
gingerBill ef21ffa285 Templatize the check_asm.cpp code ready for other architectures 2026-08-11 14:00:41 +01:00
gingerBill 70ca5c0936 Validate the names of mnemonics, prefixes, and registers for amd64 2026-08-11 10:44:34 +01:00
gingerBill 3f3e69897a Check for duplicate register pinning 2026-08-10 15:03:17 +01:00
gingerBill ebc21aad72 Fix displacement check 2026-08-10 13:50:15 +01:00
gingerBill cee5bd79e0 Fix pinning logic for asm registers 2026-08-10 12:06:28 +01:00
gingerBill 22f2e2ac78 Try to lower to LLVM IR from Odin's asm template syntax 2026-08-09 23:38:36 +01:00
gingerBill 25ce7e87de Correctly type check asm template parameters 2026-08-09 18:52:57 +01:00
gingerBill 5ac28cdecd Begin work on semantically type checking asm templates 2026-08-09 18:24:56 +01:00
gingerBill 40e54a97ed Merge branch 'master' into bill/bedrock 2026-06-24 11:07:02 +01:00
gingerBill a479eb7775 Support @(link_section=<string>) for procedures 2026-06-02 13:09:40 +01:00
gingerBill b0ee0bb635 Add @(fast_math={...}) + intrinsics.Fast_Math_Flags 2026-05-11 11:55:07 +01:00