Commit Graph
401 Commits
Author SHA1 Message Date
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
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
gingerBill 8ffcdf172a Odin_Calling_Convention defined in compiler; Allow for main :: proc "contextless" () {} with -bedrock; intrinsics.type_proc_calling_convention 2026-05-05 15:07:42 +01:00
gingerBill 942c1bff17 Merge branch 'master' into bill/bedrock 2026-05-05 13:57:14 +01:00
gingerBill b083b980f7 Fix variable based procedure groups 2026-05-05 12:09:27 +01:00
gingerBill 781b71e6ea -disable-init-fini 2026-05-04 11:31:56 +01:00
gingerBill ea00291519 Begin work on -bedrock mode
Currently disables 128-bit integers, `map` type, and RTTI
2026-05-02 15:06:01 +01:00
gingerBill 7b97530443 Add intrinsics.c_var_* 2026-04-28 15:00:53 +01:00
Nikolay Hadzhiev 48e83ad003 gh 6594
prevent compiler crash from self-referential global initialisation
2026-04-22 13:14:08 +02:00
gingerBill 04cb889aed Begin interning ScopeMap strings 2026-03-17 11:04:32 +00:00
gingerBill 36d5a19115 Replace Scope.elements to use a custom hash map ScopeMap
This hash map is robin hood based with a inline slot amount for small scopes
2026-03-16 17:41:58 +00:00
gingerBill 55b3ea7c2d Allow @(deprecated=<string>) on types 2026-03-15 18:58:48 +00:00
gingerBill 8a92ba74fc Make defer_use_checked and where_clauses_evaluated atomic 2026-02-02 10:56:30 +00:00
gingerBill f4a7e0b279 Add @(no_sanitize_thread) 2026-01-15 18:06:25 +00:00
Harold Brenes 3a07a32411 Don't check procedure signature similarity when a foreign import proc is an Objective-C method. 2025-11-07 21:38:34 -05:00