gingerBill
bf9f2e43bf
Fix typeid size in LLVM
2025-02-20 18:47:41 +00:00
gingerBill
e8c38e7427
Handle any correctly for 32-bit systems
2025-02-20 17:50:56 +00:00
gingerBill
614c0dd740
Fix typeid size for 32-bit platforms
2025-02-20 17:10:04 +00:00
gingerBill
5489a88983
Change typeid definition to be based around the canonical type hash
...
`typeid` used to be a fancy index with extra metadata stored on it. Now it is direct hash of the type.
This is safe to do in practice since any possible collisions are checked at compile time AND the chances of having a 1% collision are around 1 in 600K (see the Birthday Paradox).
Therefore accessing a `^Type_Info` is now a hash table lookup with linear probing. The table is twice the size than necessary so prevent too much probing due to an overly dense hash table.
2025-02-20 14:10:45 +00: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
0ab323012e
Use TypeSet instead of PtrSet<Type *>
2025-02-20 11:12:59 +00:00
gingerBill
0946f6b48b
Improve name canonicalization for some debuggers
2025-02-20 11:11:22 +00:00
gingerBill
90a973ccf6
Make debug symbols use the new name canonicalization rules
2025-02-20 10:27:59 +00:00
gingerBill
29456bcdea
Move docs to the header
2025-02-19 11:12:32 +00:00
gingerBill
0bac34eec8
Number fields within procedures with a depth-first numbering system
2025-02-19 10:59:05 +00:00
gingerBill
827cd45f04
Add to check to fix crash
2025-02-18 17:12:58 +00:00
gingerBill
0482facdda
Fix for weird builtin types
2025-02-18 15:26:59 +00:00
gingerBill
e168cea670
Add offset for nested things
2025-02-18 15:17:04 +00:00
gingerBill
481745784f
Remove debug print
2025-02-18 15:04:02 +00:00
gingerBill
04c1ff61f4
Update the comments
2025-02-18 15:03:49 +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
19b59461b0
Use TypeSet for DeclInfo deps
2025-02-18 13:31:34 +00:00
gingerBill
721bcf2249
Minor code clean up
2025-02-18 13:24:08 +00:00
gingerBill
d69eb57cfa
Fix typos
2025-02-18 13:18:51 +00:00
gingerBill
4a29d9bb84
Simplify type info table construction
2025-02-17 16:29:42 +00:00
gingerBill
b8f057951c
Begin work on TypeSet
2025-02-17 13:46:17 +00:00
gingerBill
9b26bb2e6a
Begin work on hash types
2025-02-17 13:10:38 +00:00
gingerBill
043f9aea61
Clean up rules for name mangling
2025-02-17 12:40:43 +00:00
gingerBill
b5cf776830
Use new name canonicalization approach
2025-02-17 11:48:54 +00:00
gingerBill
99d91ccd31
Work on making name mangling deterministic
2025-02-17 11:32:49 +00:00
gingerBill
4eba3698aa
Begin work on nested declarations
2025-02-17 09:47:49 +00:00
gingerBill
2a5933513c
Fill in more canonical types
2025-02-15 12:32:05 +00:00
gingerBill
98201962e0
Begin work on producing a canonicalized type string for hashing types.
2025-02-14 17:29:38 +00:00
gingerBill
fbee045023
Merge pull request #4797 from laytan/improve-abs-of-float
...
improve abs() on floats for more correct and faster results
2025-02-08 07:49:22 +00:00
gingerBill
58c4f13c82
Merge branch 'master' into bill/sdl3
2025-02-07 07:53:47 +00:00
gingerBill
667ddc1907
Merge pull request #4786 from korvahkh/fix-variants2ptrs
...
Preserve `#no_nil` in `intrinsics.type_convert_variants_to_pointers`
2025-02-07 07:30:14 +00:00
gingerBill
4e300b3fc8
Merge pull request #4796 from laytan/obfuscate-more
...
-obfuscate-source-code-locations on bounds checks and type assertions
2025-02-07 07:30:00 +00:00
Laytan Laats
5defddffd0
reorganize tests and handle endian
2025-02-06 21:44:34 +01:00
Laytan Laats
de83ad2a25
apply abs fix to constant system too
2025-02-06 21:19:54 +01:00
Laytan Laats
1053ec3051
make corrected linkage with -use-separate-modules apply hidden visibility
...
Fixes #4798
The DLL was using the type info of the host/exe, causing crashes.
This PR tries fixing by applying hidden visibility to these corrected
symbols which makes sure that the DLL can't see the type table of the host/exe.
2025-02-06 20:45:58 +01:00
Laytan Laats
b1068c7f2e
improve abs() on floats for more correct and faster results
2025-02-05 21:17:48 +01:00
Laytan Laats
b86d2c30b6
fix odin report macos version reporting unknown when release isn't a 3 point
2025-02-05 20:16:24 +01:00
Laytan Laats
b77430bea8
-obfuscate-source-code-locations on bounds checks and type assertions
2025-02-05 19:42:20 +01:00
gingerBill
f80bea5b11
Remove transmute suggestion with -vet-cast when transmuting native <-> endian-specific types
2025-02-05 10:27:17 +00:00
gingerBill
ab469e657d
Remove debug code
2025-02-05 10:20:18 +00:00
gingerBill
086d7956b1
Merge branch 'master' into bill/sdl3
2025-02-04 10:31:12 +00:00
korvahkh
1281303ff7
Preserve #no_nil in intrinsics.type_convert_variants_to_pointers
...
Previously the newly returned type would not be marked as `#no_nil`.
This caused `reflect.get_union_as_ptr_variants`
to break on `#no_nil` unions.
2025-02-03 16:08:19 -06:00
gingerBill
a219da14ce
Fix gb.h's gb_fprintf_va to allocate if the string is larger than the default buffer
2025-01-31 09:43:30 +00:00
gingerBill
05a2d1bfbf
Fix #4750
2025-01-31 09:34:38 +00:00
gingerBill
2af60b8767
Fix #4763
2025-01-31 09:30:15 +00:00
gingerBill
0cd20e61ab
Add @(export) foreign import
2025-01-31 08:34:15 +00:00
gingerBill
4093026a9a
Clean up @(export) foreign import code
2025-01-30 11:36:12 +00:00
gingerBill
b48f14ba82
@(export) foreign import to be package scope level
2025-01-30 11:30:38 +00:00
gingerBill
2656ecd4e1
Fix #4773 - Change order of evaluation for slicing indices
2025-01-29 15:53:34 +00:00