gingerBill
13f2090608
Try to make PtrMap work for 32-bit compilers
2025-10-27 11:06:07 +00:00
gingerBill
4cbcb3ace7
Add shortcut for unsigned_x/power_of_two -> unsigned_x >> log2(power_of_two)
2025-08-10 17:53:07 +01:00
gingerBill
620bf162a0
Cache const string16 in LLVM
2025-08-02 12:32:18 +01:00
gingerBill
2561427dd3
Add string16 and cstring16 (UTF-16 based strings)
2025-08-02 11:00:15 +01:00
gingerBill
c25ac939d4
Add cast back
2025-02-20 13:27:18 +00:00
gingerBill
1d348318f2
Use PtrMap temporarily
2025-02-20 13:23:23 +00:00
gingerBill
23efd1bd02
Add TypeWriter stream to allow for in-place hashing and string generation
2025-02-18 14:32:41 +00:00
gingerBill
3311ea1c76
Keep MSVC happy with secure versions of C calls
2024-07-15 00:38:10 +01:00
gingerBill
ecac3aef32
Change allocator to permanent
2024-04-08 16:18:14 +01:00
gingerBill
ec45504631
Obfuscate #line
2024-04-08 16:14:47 +01:00
gingerBill
810cf22e5d
Obfuscate #file and #procedure when -obfuscate-source-code-locations is enabled
2024-04-08 16:08:35 +01:00
gingerBill
9a2fc6cf4c
Serialize errors to make them sortable, deterministic, and generally more control
2024-03-19 15:34:29 +00:00
gingerBill
a9182cfd8c
Allow compound literals to access fields through using
2023-02-26 13:26:35 +00:00
gingerBill
8a16fd7699
Rename built-in procedure to expand_values
2023-02-07 15:39:39 +00:00
gingerBill
b470ceb470
Correct mpsc_dequeue
2023-01-12 12:59:09 +00:00
gingerBill
520ff731de
Add ArenaTemp to the compiler
2023-01-12 00:47:20 +00:00
gingerBill
0fb3032b73
General improves to alloc_ast_node and other unnecessary checks
2023-01-03 14:45:09 +00:00
gingerBill
252be0fb41
Make all maps use heap allocator implicitly
2023-01-03 11:59:52 +00:00
Colin Davidson
5f27f2dd7f
move to work-stealing threadpool
2022-12-28 21:44:17 -08:00
gingerBill
c1f5be24e2
Remove dead code in the compiler
2022-12-18 22:49:10 +00:00
gingerBill
ac5f5a33e9
gb_internal a lot
2022-12-18 21:17:07 +00:00
gingerBill
ab1741ab38
Add Windows 32-bit build system error
2022-09-07 12:27:15 +01:00
gingerBill
b032d5af87
Make #simd an opaque type
2022-05-25 17:26:18 +01:00
Jeroen van Rijn
3cab2592c3
Compiler: Add early error for output path being a directory.
...
- Introduce new `Path` type and an array of build paths on the build context.
- Resolve input and output paths/files early (before parsing).
- Error early if inputs are missing or outputs are directories.
- Plumb new file path generation into linker stage instead of its adhoc method.
TODO:
- Remove more adhoc file path generation in parser and linker stage.
- Make intermediate object file generation use new path system.
- Round out and robustify Path helper functions.
2022-04-24 13:37:26 +02:00
Sébastien Marie
5676c9e7eb
initial OpenBSD support
2022-02-25 08:49:25 +00:00
gingerBill
71df46456a
Minimize memory usage by having an arena per thread rather than an arena per file
2022-02-18 21:30:25 +00:00
gingerBill
e814a3693f
Improve usage of file_id
2021-11-15 17:26:01 +00:00
gingerBill
26e3daf5ad
Unify MapFindResult types
2021-11-05 17:24:19 +00:00
gingerBill
541beb615b
Move more things to PtrMap
2021-11-05 17:13:07 +00:00
gingerBill
e95204908a
Add PtrMap, begin working change Map to PtrMap where possible
2021-11-05 16:34:37 +00:00
gingerBill
3794d2417d
Write a log(n) fallback for llvm_vector_reduce_add
...
This may be what LLVM does at any rate
2021-10-28 15:01:13 +01:00
gingerBill
2ad6aa7886
Copying file contents rather than memory mapping
2021-10-12 11:06:39 +01:00
gingerBill
2bdae52fed
Add @(init) attribute for procedures, allowing for procedures to be called at startup
...
These procedures will be called after global variables have been initialized as normal
2021-10-03 11:53:32 +01:00
Phil H
3ac13d2028
Correct levenshtein distance
2021-09-23 09:22:28 -07:00
gingerBill
05ac2002e0
Force file copy on odin strip-semicolon
2021-09-18 12:52:43 +01:00
gingerBill
3713f11461
Refactor init_tokenizer_with_data to file memory mapping (Windows only currently)
2021-09-18 11:58:27 +01:00
gingerBill
ad3a3547d6
Unify thread pool logic across the rest of the compiler, using a global thread pool
2021-08-26 21:22:30 +01:00
gingerBill
3e4d615983
Minor fixes
2021-08-26 15:41:32 +01:00
gingerBill
aa8777ee47
Change the implementation of Arena to use virtual memory, and remove the old gbArena code
2021-08-26 15:38:34 +01:00
gingerBill
df372dbd5b
Migrate and remove more from gb.h
2021-08-19 15:38:21 +01:00
gingerBill
5c4d95d539
Move more of gb.h's Synchronization code into common.cpp
2021-08-19 15:19:36 +01:00
gingerBill
740995df3d
Remove attribute parameter for pthread_mutex_init
2021-08-18 21:07:06 +01:00
gingerBill
aa5c3da414
Make BlockingMutex non-recursive on *nix systems
2021-08-18 20:57:03 +01:00
gingerBill
d419d81841
Remove unused code
2021-08-18 20:48:26 +01:00
gingerBill
08942714a2
Make Arena allocate virtual memory directory; make it use a BlockingMutex
2021-08-18 20:46:10 +01:00
gingerBill
423b842347
Fix typo
2021-08-07 15:07:29 +01:00
gingerBill
16eeae36d7
Inline heap_allocator resize logic on *nix platforms
2021-08-07 15:05:46 +01:00
gingerBill
571170fd30
Improve and simplify the memory layout of MPMCQueue
2021-08-07 14:25:48 +01:00
gingerBill
700624119b
Give begin_error_block its own recursive mutex
2021-07-29 12:35:11 +01:00
gingerBill
af32aba7fc
Modify MPMCQueue behaviour to use i32 over isize; Correct cache line padding within MPMCQueue
2021-07-28 00:59:30 +01:00