Commit Graph
7309 Commits
Author SHA1 Message Date
Jeroen van Rijn 84bc3fc210 Merge pull request #7788 from A1029384756/windows-cross-compile
[windows-cross-compile] add missing `help` message
2026-10-06 07:08:36 -07:00
A1029384756 1c8600caf2 [windows-cross-compile] add missing help message 2026-10-06 09:59:07 -04:00
gingerBill b924d12fd9 Fix bug in the docs writer 2026-10-06 14:18:20 +01:00
gingerBill e28e60a80c Point "Expected a comma/semicolon, got a newline" errors just after the previous token 2026-10-05 21:49:35 +01:00
gingerBill 3300b2c35a Fix typo with linker section name problem 2026-10-05 18:48:25 +01:00
gingerBill 3b700c4656 Fix merge conflict with the same code 2026-10-05 18:47:24 +01:00
gingerBill 579bc065ea Merge branch 'master' into bill/llvm-backend-improvements 2026-10-05 18:40:31 +01:00
gingerBill 20b3fdcd58 Accept an explicit -linker:radlink on Windows again, write no BOM for the default radlink's response file, and only require link.exe for -linker:msvc 2026-10-05 18:27:58 +01:00
gingerBill 881ad21336 Walk the global graph's declarations in small batches taken by a task for each thread, and fill its edges from the walk in parallel rather than through a serial list of edges 2026-10-05 17:26:41 +01:00
gingerBill 8c4d65289e Write each package's doc entries in the natural order of their names to make the output deterministic 2026-10-05 16:59:58 +01:00
gingerBill 811658f915 Collect a global foreign block with its file when its attribute values are literals. 2026-10-05 16:55:03 +01:00
gingerBill 0e26e26a0d List each file's possible type aliases as they are collected, gather the global entities whilst they are corrected, and only destroy the checker once parsing reported no errors 2026-10-05 16:36:17 +01:00
gingerBill 6aac694c18 Export the entities and scan for global whens and foreign blocks while the import graph and package order are being made 2026-10-05 16:12:20 +01:00
gingerBill 1669cf6192 Collect each package's entities as soon as it has parsed all of its files; hold any non-syntactic errors until all of the parsing is done and only report if there are no parsing errors 2026-10-05 15:40:33 +01:00
gingerBill b2b03b68aa Create the file scopes, imports, and canning of whens in parallel 2026-10-05 15:08:35 +01:00
gingerBill 4ad95d54b8 Gather the global entities in order from a list for each file instead of sorting them all by only sorting the files with some added out of order 2026-10-05 14:43:36 +01:00
gingerBill b818d45e63 Keep each global group node's index on the entity itself 2026-10-05 14:29:54 +01:00
gingerBill b6435bf7b7 Remove the declarations' child list; take entity ids in blocks per thread; collect the files with the most declarations first 2026-10-05 14:19:07 +01:00
A1029384756 b7e607737a [windows-cross-compile] merge conflict 2026-10-05 08:34:06 -04:00
gingerBill 1082e0df9f Wait for the type and inline cycle checks only after the min dep set 2026-10-05 13:32:39 +01:00
A1029384756 ba04d81d40 Merge remote-tracking branch 'upstream/master' into windows-cross-compile 2026-10-05 08:31:04 -04: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 bcf0ac7b21 Match polymorphic procedure specializations by parameter names at every depth so they no longer depend on which call site is checked first 2026-10-05 12:28:46 +01:00
gingerBill c5cfff4e3c With -use-separate-modules, make the type info in modules of its own of about ~1000 entries each rather than all in the default module 2026-10-05 12:25:58 +01:00
gingerBill 8c55db676a Revert running each module's backend stages as one task, as it did not help in terms of performance 2026-10-05 11:57:07 +01:00
gingerBill 8cadb56bbb Run each module's stages after procedure generation as one task, from verification through its object, ordered by the module's cost 2026-10-05 11:45:46 +01:00
gingerBill b57da82909 Find the global initialization order from a sorted array of the ready variables and a heap for those ready later and build the predecessors in its task rather than on the main thread 2026-10-05 10:55:13 +01:00
gingerBill 0e9c80985b Overlap the entity graph's setup with later stages, collect the min dep type info per thread without a lock (skipping polymorphic parameters) and hash it in parallel, and format 64-bit big ints directly 2026-10-05 10:30:24 +01:00
Jeroen van Rijn 3500b228f9 Merge pull request #7740 from bplu4t2f/test-7689
Fix #7689 - Incorrect debug source location at the end of if/else chains
2026-10-05 02:26:51 -07:00
gingerBill a7bca01b58 Add task groups to the thread pool so that a stage waits only for its own tasks; overlap the scope usages and the cycle checks with the stages after them 2026-10-05 09:14:39 +01:00
gingerBill 95f3194c08 Divvy out the entity graph's edge searches one node at a time and empty each search's visited set by what was put in it 2026-10-05 08:54:24 +01:00
gingerBill 92fbab1b5a Find the global initialization order alongside the minimum dependency set as only the backend reads it 2026-10-05 08:37:49 +01:00
gingerBill ba17318ff6 For the min dep set, do not record local variables, constants, or labels 2026-10-05 08:25:20 +01:00
gingerBill 5adc9426a1 Mark the min dep set's entities with no declaration without walking them, skip the type info lock for types already added, and split the walk into tasks sooner 2026-10-05 00:52:07 +01:00
gingerBill 003e64ca4b Sort the lazily checked entities with natural_merge_sort too 2026-10-05 00:17:37 +01:00
gingerBill 5a2f09b002 Add natural_merge_sort in sort.cpp and use it to sort the global entities 2026-10-05 00:15:41 +01:00
gingerBill 6abf51b621 Add untyped expression values in parallel with a thread_pool_for_chunks helper shared with the cycle scan 2026-10-04 23:53:55 +01:00
gingerBill caefb4809d Remove add_type_info_for_type_definitions which ran before any minimum dependency count was set and so never added anything 2026-10-04 23:39:12 +01:00
gingerBill 043890d609 Check for type and inline cycles in one parallel pass over the definitions 2026-10-04 23:34:28 +01:00
gingerBill 7cbb04159d Name nested and anonymous procedures from their enclosing declarations alone so the name never depends on which module names them first 2026-10-04 23:22:32 +01:00
gingerBill 0cbc5a6602 Define an anonymous procedure in every module that reaches it, so which module defines it never depends on timing 2026-10-04 23:02:40 +01:00
gingerBill 07b984f9c9 Correct type aliases per package in parallel, visiting only constants of an identifier 2026-10-04 22:34:00 +01:00
gingerBill 9a521c6064 Check file scope directives in parallel once every global entity has been checked 2026-10-04 21:50:44 +01:00
gingerBill 1296ed9660 Make the string interner's cells one cache line with a 4 MB table and hash each identifier once 2026-10-04 21:22:49 +01:00
Matthias Huerbe 2b82056df2 Fix -linker:radlink being rejected on Windows 2026-10-04 22:08:37 +02:00
gingerBill bab596921c Read a file on Windows without a seek or a separate attribute query and list a directory with one attribute query and a large fetch 2026-10-04 20:27:01 +01:00
gingerBill 707c314aaa Remove the global locks from resolving import paths and queue an import's package as soon as the import is parsed 2026-10-04 20:12:59 +01:00
gingerBill e774d7954c Allow the compiler with slightly older forms of the compiler which only have default_hasher and not default_hasher_fixed 2026-10-04 19:36:19 +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