Commit Graph

5299 Commits

Author SHA1 Message Date
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