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
gingerBill
d1c9fd4e01
Implement #complete switch by default, replace with #partial switch #511
2019-12-22 12:03:48 +00:00
gingerBill
81b24594ce
Add udivmod128.odin
2019-12-21 19:49:09 +00:00
gingerBill
494b1e7eaa
Add -help which prints information about the compiler flags
2019-12-21 11:22:46 +00:00
gingerBill
58d4d424c6
Replace #vector[N]T with #simd[N]T to reduce confusion #498
2019-12-15 11:30:09 +00:00
gingerBill
42def957d5
Fix append_elem_string, again
2019-12-03 09:35:24 +00:00
gingerBill
6433a0d31e
Fix append_elem_string
2019-12-03 09:16:11 +00:00
gingerBill
359e5d9e15
Fix append_elem_string
2019-12-03 09:07:15 +00:00
gingerBill
9db81498d8
Make the string type elements "immutable", akin to char const * in C
...
Allows for extra security and optimization benefits
2019-12-01 14:10:59 +00:00
gingerBill
9b58781122
#soa[dynamic]Type (Experimental)
2019-11-21 19:36:07 +00:00
gingerBill
44e0e96612
Prepare SOA Struct code for slices and dynamic arrays *to be implemented*
2019-11-19 23:54:36 +00:00
gingerBill
d22e5b697d
Add new #soa and #vector syntax
2019-11-17 10:30:37 -08:00
gingerBill
40546fbde2
Use runtime.mem_copy in package me
2019-11-03 19:59:41 +00:00
gingerBill
ebf7926fa4
SOA support of Structures and Arrays; Runtime information for SOA structs; fmt printing support for SOA structs
2019-11-03 00:32:22 +00:00
gingerBill
fe5c642d9f
Fix runtime.cstring_len
2019-10-29 08:47:05 +00:00
gingerBill
7140f42915
Modify runtime to reduce dependencies on other packages
2019-10-23 21:43:13 +01:00
gingerBill
2a6d9e8927
#panic; Minor change to demo.odin; Fix #assert bug at file scope
2019-10-13 12:38:23 +01:00
gingerBill
939459b635
Change implicit semicolon rules for record types within procedure bodies; Update package odin/*
2019-10-06 19:16:55 +01:00