Commit Graph

154 Commits

Author SHA1 Message Date
gingerBill ff92eb9112 Relative pointers 2020-05-15 17:37:00 +01:00
gingerBill 8b066b2456 Fix runtime.memset issue 2020-05-14 17:56:24 +01:00
gingerBill e0a242e9a1 Enforce explicit context definition for procedure calls 2020-05-14 13:44:28 +01:00
gingerBill f661d34049 Implement Explicit context creation #639 2020-05-14 00:13:26 +01:00
gingerBill f6c7a0c9b8 Fix -llvm-api memset "bug" 2020-05-13 23:51:51 +01:00
gingerBill d51b98a8d2 Add extra 128 bit integer procedures 2020-05-13 13:46:32 +01:00
gingerBill ba4363d678 Improve append_elem(s) logic 2020-05-02 12:09:25 +01:00
gingerBill 4236e870d7 Fix type assertion bug #619 2020-04-21 23:26:02 +01:00
gingerBill 4438b3e7af Fix LLVM API backend for procedure "constant" values 2020-04-17 13:50:28 +01:00
gingerBill 9e698b720f Change behaviour for zero-sized value types of array-related types; Fix make behaviour to always zero memory 2020-04-12 10:41:44 +01:00
gingerBill 90593fe6ae Endian specific floating point types (e.g. f32be) 2020-04-11 21:34:55 +01:00
gingerBill baf5b9edc3 Add runtime.bswap_* required for -llvm-api 2020-04-11 19:26:16 +01:00
gingerBill 3f638f92e2 Fix -vet warning in core.odin for intrinsics not being used 2020-04-04 13:48:53 +01:00
gingerBill 93955a0fd8 Remove context.std* parameters; Fix unary boolean not 2020-03-19 15:03:02 +00:00
gingerBill 18fb6a4be4 Merge branch 'master' into llvm-integration 2020-03-15 14:31:26 +00:00
gingerBill 8dba0e332c Fix #590 2020-03-15 14:29:45 +00:00
gingerBill d4e95282c2 Fix llvm.memset for both backends 2020-03-08 18:42:30 +00:00
gingerBill 28502ba53b Fix context system; add more to -show-more-timings for LLVM API; Add ODIN_USE_LLVM_API global constant 2020-03-08 12:34:36 +00:00
gingerBill db7a3ffd2a Merge branch 'master' into llvm-integration 2020-03-05 21:12:16 +00:00
gingerBill e92fdb4a99 x if cond else y and x when cond else y expressions 2020-03-05 20:34:30 +00:00
gingerBill 6151fdb324 Merge branch 'master' into llvm-integration 2020-03-04 19:27:01 +00:00
gingerBill 2fe0eaf2ad Fix formatting 2020-03-04 13:10:39 +00:00
gingerBill a27c68f526 Type_Info initialization 2020-02-29 11:12:37 +00:00
gingerBill 8ec5987ae1 Merge branch 'master' into llvm-integration 2020-02-29 09:55:25 +00:00
gingerBill 8f42958ba3 Fix __dynamic_array_reserve 2020-02-26 12:58:22 +00:00
gingerBill 4d7270cec9 Fix __dynamic_array_reserve to allow for zero sized elements 2020-02-26 12:55:56 +00:00
gingerBill e197af766d Merge branch 'master' into llvm-integration 2020-02-23 10:39:57 +00:00
gingerBill 2180f4a475 Basic work on obj generation 2020-02-23 10:04:25 +00:00
Mikkel Hjortshoej 9d5692ae68 Enhance logger interface with 'f' and not 'f' variants, also move level detection out 2020-02-10 01:26:04 +01:00
gingerBill 0f399a7294 Add union #maybe 2020-02-01 11:10:28 +00:00
Tetralux abe8789890 Fix make(map[K]V, 0) by ensuring reserve always sets an allocator
Currently, `make(map[K]V, 0)` asserts, because trying `reserve` zero items does not set the allocator; it early-outs.

`__dynamic_map_reserve` assumed that `__dynamic_array_reserve` would always set the allocator - even if given a desired capacity of `0`.

Rather than making `__slice_resize` just _also_ set the default allocator if there isn't one, this makes `__dynamic_array_reserve` always set the allocator, even if it is about to early out.
This is because users are lead to understand that `append` will set the allocator if one is not already set - `reserve` should work the same way.
2020-01-26 01:03:14 +00:00
gingerBill b542ef273d Begin work on -target:windows_386 2020-01-18 14:44:53 +00:00
gingerBill e1ccba3de5 Improve runtime/default_allocators.odin 2020-01-11 20:12:50 +00:00
gingerBill 5c7d6fcfd0 Improve minimum dependency for complex numbers and quaternion numbers. 2020-01-04 18:04:12 +00:00
Tetralux b32ef9e47b Fix make and reserve
- Set the allocator, even if memory allocation fails.
  Right now it doesn't, which means that if allocation fails, it'll use
  the context allocator instead. This memory will be leaked if the user
  doesn't understand that this happened.

- Only set len and cap of the array returned from make iif the memory allocation
  succeeded.
  This means that reserve will return false if you do this:
  ```
  a := make([dynamic]int, failing_allocator);
  if !reserve(&a, 5) do return; // or whatever indicates failure
  ```
2020-01-03 10:40:45 +00:00
gingerBill b8324b0776 Fix behaviour for make to return nil when alloc returns nil 2020-01-03 10:17:30 +00:00
Tetralux f6f10d10e8 Fix append_string 2020-01-02 11:38:25 +00:00
gingerBill 978d7fcb99 Fix typeid information for enumerated arrays 2019-12-31 16:54:50 +00:00
gingerBill b267a5964d Fix memset for unix 2019-12-31 14:28:01 +00:00
gingerBill 4591353724 Use naive definition of memset for !windows 2019-12-31 14:17:21 +00:00
gingerBill 13107628f8 Make mem.set use llvm.memset.p0i8.iXX 2019-12-31 14:09:51 +00:00
gingerBill c407687a4c Fix new changes to runtime for unix 2019-12-31 14:04:19 +00:00
gingerBill 5a50ab7a99 Add new runtime files. 2019-12-31 13:54:42 +00:00
gingerBill ab52f8d795 Move definition of mem.Allocator and log.Logger to package runtime, to reduce import cycle magic 2019-12-31 12:15:19 +00:00
gingerBill f24de51c65 Add _tls_index and _fltused for windows -no-crt 2019-12-29 21:28:50 +00:00
gingerBill 2252d992d7 Add -disable-assert to disable the code generation of the built-in run-time 'assert' procedure 2019-12-29 21:10:27 +00:00
gingerBill a8a4dc1eb1 Make default context.temp_allocator thread safe when using package thread 2019-12-29 18:08:48 +00:00
gingerBill 10f0961184 Enumerated arrays [Enum_Type]Elem_Type 2019-12-27 12:51:02 +00:00
Patric Dexheimer ff0bc3ccad minor details ;) 2019-12-24 11:50:26 -03:00
gingerBill 5b1312342e Fix runtime.mem_copy_non_overlapping to be like C's memcpy 2019-12-24 08:07:43 +00:00