Commit Graph
928 Commits
Author SHA1 Message Date
gingerBill bdb0364739 Remove the missing procedures fallback from the backend: the checker adds the Objective-C runtime procedures the backend calls, local foreign procedures with a duplicate name are bound to the existing declaration, and local procedures passed to a $ parameter are created up front 2026-10-03 22:26:08 +01:00
gingerBill 5795183b75 Queue a polymorphic specialization's body when it is first used rather than when it is generated, so the minimum dependency set is only generated once; assert that every body in it was checked rather than checking any missed ones late 2026-10-03 19:37:26 +01:00
gingerBill 32f30c3eb3 Tokenize whilst parsing rather than storing every token of a file first 2026-10-03 16:03:59 +01:00
gingerBill 5031e2733e Add the comparison procedures of types in the type table and map keys as dependencies making the backend no longer has to create missing procedures 2026-10-03 12:38:00 +01:00
gingerBill c628768c5e Strip constant parameters from specialized procedure types; fix calling a parenthesized polymorphic callee 2026-10-02 23:11:13 +01:00
gingerBill 1d3f982b50 Allow intrinsics.procedure_of on procedures without results or requiring a context; treat a specialized procedure's type as concrete 2026-10-02 17:10:03 +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 ff9d3584f4 Per-thread arrays instead of MPSC queues for entities, definitions and untyped expressions; walk the minimum dependency set from per-task stacks, and scan its root definitions in parallel 2026-10-02 12:07:06 +01:00
gingerBill 5fbcbd17da Compare entity source order by each file's index in its package rather than its name; search the initialization-order graph's edges in parallel 2026-10-02 11:44:50 +01:00
gingerBill 0de3f92449 Thread pool: wake one sleeping worker per task instead of all, spin briefly before sleeping; walk the procedure dependency tree in chunks 2026-10-02 11:24:28 +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 5f579a1a10 Fix numerous race conditions: clone polymorphic defaults per call, evaluate foreign import attributes after collection, own dependencies for record instances, sorted Objective-C emission, no debug line for anonymous records 2026-10-01 21:55:25 +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 f7ee910f93 Merge checker_global_*.cpp into checker_global.cpp; base -internal-global-entity-graph on the scheduled groups 2026-10-01 17:43:03 +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 2b90b616e1 Add -vet-when-shadowing; Resolve global whens and foreign blocks on demand via name placeholders 2026-10-01 16:28:12 +01:00
gingerBill 5f6e95a620 Don't treat a global naming itself as an initialization cycle (fixes test_issue_6621) 2026-10-01 15:26:45 +01:00
gingerBill 38fa57e907 Make global checking and codegen order-independent 2026-10-01 15:01:14 +01:00
gingerBill b06c5ffa70 Add -internal-global-entity-graph; Fix union type inference bug 2026-10-01 13:42:32 +01:00
gingerBill 66111934c3 Allow parapoly procs to be in @(deferred_*) attributes 2026-10-01 01:17:40 +01:00
gingerBill 3b9ef40fae Clean up comments and add more wait signal guards for union variants 2026-09-30 15:53:31 +01:00
gingerBill 29b681b43d Handle more cases where ExactValue_Float was being handled but not for ExactValue_Rational 2026-09-29 15:21:00 +01:00
Louis Novy fc8b49f5f5 Fix the same $ procedure argument generating duplicate instantiations 2026-09-27 10:40:33 -04:00
gingerBill 07b5c2ee0f Support enable_target_feature and require_target_feature for asm templates 2026-08-31 16:39:17 +01: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 c3b2029f64 Support asm template groups 2026-08-17 19:54:21 +01:00
gingerBill 1f2234a4b2 Merge branch 'master' into bill/inline-asm 2026-08-17 11:44:14 +01:00
kalsprite 55d0aecd92 add missing break on fix dyn 2026-08-16 19:51:27 -07:00
gingerBill 5ac28cdecd Begin work on semantically type checking asm templates 2026-08-09 18:24:56 +01:00
kalsprite 42bd26cb72 switch ordering 2026-08-07 16:14:12 -07:00
kalsprite 391a862e4f make tok stable under multi-thread 2026-08-07 15:58:25 -07:00
kalsprite 4780d24836 fix grammar on import name error 2026-08-04 18:26:02 -07:00
aelobdog f465f3dc6f fix: hang for poly procs with default proc literal params 2026-07-28 22:48:38 +05:30
Richard Nyberg bb2e7e60ce Reject chained deferred procedures. 2026-07-12 07:49:46 +02:00
Jeroen van Rijn 94be05ead1 Merge pull request #6918 from Kelimion/deprecate-llvm-14
Remove LLVM 14 support
2026-07-03 21:35:47 +02:00
MauriceElliott 56cee0c2cf fix: made suggested changes to add a playdate subtarget, updated help text and reduce required build flags for playdate to just the subtarget, no-movt and cortex-m7 added to default on playdate subtarget flag. 2026-07-01 21:18:28 +01:00
Jeroen van Rijn 2d2979a5f2 Remove old pass manager 2026-06-30 22:44:28 +02:00
gingerBill 37c349e604 Fix #6907 2026-06-29 13:47:46 +01:00
gingerBill 6fdaedf182 Fix indentation 2026-06-24 14:05:35 +01:00
gingerBill 40e54a97ed Merge branch 'master' into bill/bedrock 2026-06-24 11:07:02 +01:00
gingerBill d16a37e649 Add warning to help very large return values (partially fixes #6568) 2026-06-22 15:41:43 +01:00
Andreas Stenmark d08c953411 Fix #6811: collect @(test) procs from #+private file by iterating c->info.entities instead of pkg->scope->elements. 2026-06-14 23:10:36 +02:00
gingerBill 16eac6187d Re-add @(link_section<string>) for procedures 2026-06-02 13:38:39 +01:00
gingerBill 7a5a73efae Generalize is_foreign_name_valid but add TODO to see how it should work. 2026-06-02 13:21:57 +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 ea00291519 Begin work on -bedrock mode
Currently disables 128-bit integers, `map` type, and RTTI
2026-05-02 15:06:01 +01:00