gingerBill
3dcc22fa6d
Change hashing rules for float-like types to make 0 == -0
2025-04-16 10:52:35 +01:00
Jeroen van Rijn
bb38775fb1
Remove Type_Info_Tuple
2025-04-13 21:51:57 +02:00
Jeroen van Rijn
41d4ddbc5e
Add reflect.length + reflect.capacity support for #simd[N]T
2025-04-11 22:44:02 +02:00
Jeroen van Rijn
f4ce84dfb4
Add fix to reflect.typeid_elem
2025-04-11 22:24:19 +02:00
gingerBill
e38a08013e
Remove #relative types from the compiler
2024-11-14 16:17:24 +00:00
Laytan Laats
9c374b4d02
reflect: add enum_value_has_name proc
...
Easy way to check if the current value has a defined name/member in the
enum type.
2024-11-11 18:56:59 +01:00
Jeroen van Rijn
8ad4427a25
Add a few more reflect.bit_field_* helpers.
2024-08-30 22:40:14 +02:00
Jeroen van Rijn
db3bcd2cea
Add reflect.bit_fields_zipped
2024-08-30 22:04:10 +02:00
Laytan Laats
dec97cbddb
fix type_info_union_is_pure_maybe only working with regular pointers
...
Fixes #3996
2024-08-11 21:07:21 +02:00
Jeroen van Rijn
17ebaffce8
Update comment.
2024-08-05 22:12:22 +02:00
Jeroen van Rijn
4902288a5a
Add reflect.struct_field_count that returns the number of fields in a struct type
...
Example:
```odin
package struct_count_example
import "core:fmt"
import "core:reflect"
import "core:dynlib"
Foo :: struct{
one: int,
two: f32,
}
Bar :: struct {
three: int,
four: bool,
five: f64,
}
Game_Api :: struct {
init: proc(api: ^Game_Api),
update: proc(api: ^Game_Api),
using foo: Foo,
bar: Bar,
// Private stuff
reload_count: int,
__handle: rawptr,
}
API_PRIVATE_COUNT :: 2
game_api: Game_Api
main :: proc() {
fmt.printfln("Game_Api, .Top: %v", reflect.struct_field_count(Game_Api)) // 6
fmt.printfln("Game_Api, .Using: %v", reflect.struct_field_count(Game_Api, .Using)) // 8
fmt.printfln("Game_Api, .Recursive: %v", reflect.struct_field_count(Game_Api, .Recursive)) // 11
symbols_loaded, _ := dynlib.initialize_symbols(&game_api, "game.dll")
symbols_expected := reflect.struct_field_count(Game_Api) - API_PRIVATE_COUNT
if symbols_loaded == -1 {
fmt.eprintln("Couldn't load game.dll")
return
} else if symbols_loaded != symbols_expected {
fmt.eprintfln("Expected %v symbols, got %v", symbols_expected, symbols_loaded)
return
}
}
```
2024-08-05 22:04:16 +02:00
Laytan Laats
3e618bed40
fix reflect.any_base and reflect.any_core with any's containing nil
2024-07-22 00:51:38 +02:00
gingerBill
399c3ab067
Reduce the size of runtime.Type_Info
2024-07-14 21:37:35 +01:00
gingerBill
45b2a6a19e
Fix reflect.as_pointer
2024-07-04 13:37:47 +01:00
Laytan Laats
317931a3c5
encoding/cbor: deterministically store bit sets as big endian
2024-03-04 17:26:19 +01:00
gingerBill
a4b8c1ea17
Begin work adding bit_field
2024-02-22 15:55:54 +00:00
gingerBill
8472338bfa
Add reflect.enum_name_from_value and reflect.enum_name_from_value_any
2024-02-21 12:43:09 +00:00
gingerBill
3e7e779abf
Replace core:* to base:* where appropriate
2024-01-28 22:18:51 +00:00
gingerBill
ddcaa0de53
Remove core:mem dependency from core:reflect
2024-01-28 20:52:01 +00:00
gingerBill
30636f5114
Change return values from Struct_Tag to string
2024-01-28 15:48:19 +00:00
gingerBill
c91898a888
Remove #relative slices; Replace with #relative multi-pointers
2023-08-05 16:05:39 +01:00
gingerBill
3dec55f009
Replace x in &y Use &v in y syntax through core & vendor for switch/for statements
2023-06-26 15:42:57 +01:00
gingerBill
296674e18b
Rename ODIN_DISALLOW_RTTI to ODIN_NO_RTTI; Remove dead command line flags
2023-06-12 14:53:05 +01:00
gingerBill
0b064765c9
Add reflect.struct_field_value
2023-03-17 11:47:39 +00:00
gingerBill
6179d4feb1
Rename to Type_Info_Parameters
2023-02-08 11:23:21 +00:00
gingerBill
4cb16db4e9
Remove @(require_results) from one procedure
2023-01-30 12:51:56 +00:00
gingerBill
8d43cc840a
Add @(require_results) to package reflect
2023-01-29 11:28:05 +00:00
gingerBill
64047cbf05
Fix #2304
2023-01-16 11:02:42 +00:00
André (counter)
b3be2cdf9d
Aliasing some procs to avoid code repetition
...
Aliasing some procedures within package reflect so they reference procedures from package runtime.
This avoids redundancy and potential deviation.
Not 100% sure about the ODIN_DISALLOW_RTTI part but I think it should be congruent as well.
2022-12-09 18:14:47 +01:00
gingerBill
c96e0afbf1
Begin work on implementing the new map internals
2022-11-07 23:02:21 +00:00
gingerBill
0c9ddd51a4
Keep -vet happy
2022-09-08 16:55:40 +01:00
gingerBill
f77709e67e
Add intrinsics.type_convert_variants_to_pointers and reflect.get_union_as_ptr_variants
2022-09-08 16:52:51 +01:00
gingerBill
12c8db927b
Remove direct core:mem dependency in core:reflect
2022-08-26 16:46:19 +01:00
gingerBill
b50b6b9f33
Add reflect.get_union_variant
2022-08-26 16:19:16 +01:00
gingerBill
5e3cf45df3
Add #soa pointer type to aid with refactoring to #soa data types
...
a: #soa[16]Foo
p := &a[6]
#assert(type_of(p) == #soa^#soa[16]Foo)
p^.x = 123
p.x = 123
2022-08-08 15:07:00 +01:00
gingerBill
3ec70c5517
Merge functionality of #maybe with the standard 'union' functionality
2022-05-23 12:04:19 +01:00
gitlost
4f5203e661
Fix some core:encoding/hxa stuff (error handling, header, max -> min)
...
Also add missing f16 case to core:reflect as_u64 & as_f64
Add tests for above & add previous tests missing from test/core/build.bat
2022-03-16 19:12:00 +00:00
gingerBill
1abd95094d
Add reflect.deref
2022-03-03 23:25:22 +00:00
Andrea Piseri
e190c024fd
Fix logic in is_nil procedure: a non_nil slice means there is data to check.
2022-02-02 20:07:38 +01:00
gingerBill
4c655865e5
Begin work on matrix type
2021-10-18 16:52:19 +01:00
gingerBill
d32d1b7e07
Add reflect.set_union_value
2021-09-30 12:04:27 +01:00
gingerBill
931fdd2dca
Add reflect.any_base reflect.any_core
2021-09-25 17:47:23 +01:00
gingerBill
2800d4b8d0
Merge branch 'master' into optional-semicolons
2021-09-06 16:46:57 +01:00
gingerBill
e3809f5c1b
Allow comparisons of any if reflect.equal if including_indirect_array_recursion is enabled
2021-09-03 15:52:47 +01:00
gingerBill
c9f4fdc856
Update reflect.equal to support more types
2021-09-03 15:49:29 +01:00
gingerBill
11ae87cc2f
Add including_indirect_array_recursion argument to reflect.equal
2021-09-03 12:00:43 +01:00
gingerBill
7ed4f01d02
Add reflect.equal and reflect.not_equal
2021-09-03 11:02:31 +01:00
gingerBill
720884e0f1
Strip even more semicolons if followed by a } or ) on the same line
2021-08-31 23:47:57 +01:00
gingerBill
251da264ed
Remove unneeded semicolons from the core library
2021-08-31 22:21:13 +01:00
gingerBill
18a0fa02c5
Add multi pointers to core
2021-08-21 23:16:14 +01:00