Commit Graph

33 Commits

Author SHA1 Message Date
gingerBill 670f18ad1b Minor change to shrink 2022-06-12 16:12:24 +01:00
Tetralux fa2296a124 [runtime] Add builtin shrink for dynamic arrays and maps
Asks the allocator to shrink the backing allocation to the current __length__, or a capacity
of the user's choosing.

Returns `(did_shrink: bool, err: mem.Allocator_Error)`.

```
shrink(&array) // shrinks to len(array)
shrink(&array, N) // shrink to N capacity

shrink(&map) // shrinks down to len(map)
shrink(&map, N) // shrink to N capacity
```
2022-06-04 23:29:47 +00:00
gingerBill 63d6c08d90 Add raw_simd_data 2022-05-25 22:09:38 +01:00
gingerBill 3ec70c5517 Merge functionality of #maybe with the standard 'union' functionality 2022-05-23 12:04:19 +01:00
gingerBill 8c1499dbc2 Make raw_data return [^]T types 2022-05-23 11:48:05 +01:00
gingerBill be8de4a1ff Update arch enum 2022-05-01 23:52:55 +01:00
gingerBill 9349dfba8f Add new builtin container_of 2022-04-27 12:39:45 +01:00
Jeroen van Rijn 19dc84e300 Reinstate NBC. 2022-03-15 19:37:04 +01:00
Jeroen van Rijn a932168f50 [runtime] fix insert_at procedure group. 2022-03-15 19:35:00 +01:00
gingerBill d269dbcd40 Add comment for the internals of assert 2022-01-23 22:01:54 +00:00
gingerBill f57201bbd1 Remove unneeded semicolons from the core library 2021-08-31 22:32:53 +01:00
gingerBill 251da264ed Remove unneeded semicolons from the core library 2021-08-31 22:21:13 +01:00
gingerBill a5c31bbee0 Add map_insert which returns the pointer to inserted value 2021-08-29 11:45:11 +01:00
gingerBill 81623861c0 Correct mem.clone_slice 2021-08-23 14:33:54 +01:00
gingerBill 4ccf135892 Unify new/make the internal logic between runtime and mem 2021-08-23 12:35:29 +01:00
gingerBill 445ed9be2b Use multi-pointers when appropriate 2021-08-22 12:54:04 +01:00
gingerBill f0437a4242 Enforce core:builtin and core:intrinsics for imports 2021-08-21 13:44:16 +01:00
gingerBill 7bbc9a4634 Add #any_int directive to replace auto_cast uses on parameters. 2021-08-15 12:56:59 +01:00
gingerBill a4be1a5e4c delete_key now returns the deleted key and deleted value (if found) 2021-07-04 18:52:47 +01:00
gingerBill 3e7aabe6d8 Change uses for parapoly records to use $ always 2021-06-14 11:43:35 +01:00
gingerBill f30e6f50bd Reorganize code to improve code generation 2021-06-08 16:21:19 +01:00
gingerBill 46204ed7f0 Update core:runtime to use the new intrinsics 2021-05-30 13:22:15 +01:00
gingerBill 72aa0e6e38 Replace many foreign llvm calls with intrinsics 2021-04-25 20:22:26 +01:00
gingerBill c3b3194a00 Update builtin procedures to support the new allocator features (without breaking other code) 2021-04-19 22:44:20 +01:00
gingerBill f98c4d6837 Improve the Allocator interface to support returning Allocator_Error to allow for safer calls
Virtually all code (except for user-written custom allocators) should work as normal. Extra features will need to be added to make the current procedures support the `Allocator_Error` return value (akin to #optional_ok)
2021-04-19 12:31:31 +01:00
gingerBill 6faf024ab4 Remove unneeded return value from incl and excl 2021-03-02 00:40:40 +00:00
gingerBill 35edf45514 Add make_soa and delete_soa; Reorganize soa procedures into a separate file 2021-03-01 18:07:09 +00:00
gingerBill aa93305015 Replace usage of inline proc with #force_inline proc in the core library 2021-02-23 16:14:47 +00:00
gingerBill 415379e1cf Fix delete_map 2021-02-02 16:30:34 +00:00
gingerBill a55568b0c4 Make hash internal key be uintptr rather than u64 to reduce entry size 2020-11-23 19:14:36 +00:00
gingerBill 91758656f6 Change internal layout of map[K]V 2020-11-23 18:25:01 +00:00
gingerBill 87956676f5 Add %s support for arrays and slices of bytes 2020-11-20 16:01:16 +00:00
gingerBill 913eac13b1 Reorganize runtime code into separate files 2020-11-19 00:08:23 +00:00