gingerBill
e7e1866e50
Fix #893
2021-04-27 13:09:37 +01:00
gingerBill
94fd59e6f0
Make compound literals require trailing commas if followed by a newline
2021-04-26 23:05:00 +01:00
gingerBill
c07ab5f9ad
Change expr_level increment rules within a compound literal
2021-04-26 23:02:00 +01:00
gingerBill
06e0da97b7
Implement ODIN_ROOT #913
2021-04-26 22:56:32 +01:00
gingerBill
04535b2913
Fix constant aliasing for debug information
2021-04-26 22:36:20 +01:00
gingerBill
6667b78c12
Correct core:os/os2 mock-up
2021-04-26 22:08:15 +01:00
gingerBill
7e0c78eae7
Fix logic for \n ignoring
2021-04-26 21:39:49 +01:00
gingerBill
6d1eb473cf
Correct \n ignore rules
2021-04-26 21:25:44 +01:00
gingerBill
898245431f
Make -strict-style the default #871
2021-04-26 21:07:58 +01:00
gingerBill
43942a6199
Fix odin run on Windows
2021-04-26 20:54:18 +01:00
gingerBill
a38586420c
Fix race condition with procedure aliases checking for declarations on constant aliases
2021-04-26 19:46:42 +01:00
gingerBill
1aa9c49172
Remove warning for "Redundant 'auto_cast' applied to expression"
2021-04-26 19:17:25 +01:00
gingerBill
5a88fef483
Make corrections
2021-04-26 18:07:34 +01:00
gingerBill
43b55223af
Merge branch 'master' into old-backend-removal
2021-04-26 11:46:58 +01:00
gingerBill
aa846d0ea5
Fix union #maybe comparison against nil -llvm-api
2021-04-26 11:46:26 +01:00
gingerBill
1d628a5e3d
Change how GIT_SHA is rendered in odin version
2021-04-25 22:23:47 +01:00
gingerBill
af3784ebb6
Add -DODIN_VERSION_RAW to Makefile
2021-04-25 22:19:34 +01:00
gingerBill
ff933ca37f
Remove old shell scripts in favour of Makefile
2021-04-25 22:13:01 +01:00
gingerBill
bbf79fc1d4
Add ODIN_VERSION_RAW define to build.bat
2021-04-25 22:10:52 +01:00
gingerBill
2af8e956a6
Change versioning system from v0.13.1 to dev-2021-04
2021-04-25 22:09:22 +01:00
gingerBill
9ed826f6fb
Remove import "core:runtime" from core:math/bits
2021-04-25 21:51:33 +01:00
gingerBill
07f9e551c1
Revert build.bat
2021-04-25 21:38:29 +01:00
gingerBill
df4404e093
Fix typo in gb_get_env
2021-04-25 21:24:33 +01:00
gingerBill
583fd89fcf
Add gb_get_env
2021-04-25 21:22:15 +01:00
gingerBill
2691c394e0
Add intrinsics.count_zeros
2021-04-25 20:50:25 +01:00
gingerBill
4662bad59c
Remove unused file
2021-04-25 20:31:35 +01:00
gingerBill
7086b49ae6
Rename intrinsics to count_trailing_zeros and count_leading_zeros
2021-04-25 20:26:11 +01:00
gingerBill
72aa0e6e38
Replace many foreign llvm calls with intrinsics
2021-04-25 20:22:26 +01:00
gingerBill
cb2e6ea31d
Remove use_llvm_api related checks and other related things
2021-04-25 20:03:05 +01:00
gingerBill
74c683e908
Remove -llvm-api from CI
2021-04-25 19:59:35 +01:00
gingerBill
6383714bff
Remove old procedure ABI code
2021-04-25 19:56:46 +01:00
gingerBill
a25e796b00
Delete ir.cpp and related files
2021-04-25 19:52:37 +01:00
gingerBill
833784e196
Remove old backend specific code in main
2021-04-25 19:51:57 +01:00
gingerBill
66a70b9d27
Remove the need for LLVM_BACKEND_SUPPORT
2021-04-25 19:49:29 +01:00
gingerBill
cd125c0f41
Override -llvm-api to always be true
2021-04-25 19:46:48 +01:00
gingerBill
ff620422fa
Fix #857
2021-04-25 19:40:02 +01:00
gingerBill
5685a8d885
Fix #911 for -llvm-api backend
2021-04-25 19:19:44 +01:00
gingerBill
1bdce19c18
Update nightly.yml to support -llvm-api
2021-04-25 18:44:05 +01:00
gingerBill
041ff13672
Update CI for Linux
2021-04-25 18:06:29 +01:00
gingerBill
60a2eaf666
Revert changes to macOS Makefile
2021-04-25 18:04:07 +01:00
gingerBill
ec2db568c1
Update Makefile for macOS to be more "correct" with Linux
2021-04-25 15:57:35 +01:00
gingerBill
1387fd9047
Make -llvm-api run first before old backend on Linux
2021-04-25 15:52:24 +01:00
gingerBill
fb6288a54e
Try specifying the specific libs on Linux
2021-04-25 15:48:54 +01:00
gingerBill
4d00058858
Try clang-11
2021-04-24 22:11:38 +01:00
gingerBill
5c26cf9d73
Try llvm-config-11 in the Makefil
2021-04-24 21:58:44 +01:00
gingerBill
6048d25d36
Try llvm-config-11
2021-04-24 21:26:14 +01:00
gingerBill
748f094e15
Add llvm-dev-11 to Linux CI (just testing)
2021-04-24 21:20:18 +01:00
gingerBill
184c686c7e
Add clang-11 for Linux; blank out threading_example on darwin
2021-04-24 21:13:40 +01:00
gingerBill
240a568eb9
Update CI to run both old and new backends
2021-04-24 21:09:35 +01:00
gingerBill
ad953c4670
Add cast on S_ISDIR
2021-04-24 21:08:15 +01:00
gingerBill
0f9b0c2052
Remove libllvm-11
2021-04-24 21:04:38 +01:00
gingerBill
cde334ada3
Modify flags in Makefile
2021-04-24 21:03:22 +01:00
gingerBill
2b4010998d
Up ci.yml
2021-04-24 20:55:50 +01:00
gingerBill
4272fe5e85
Update Makefile to compile with LLVM C API
2021-04-24 20:46:47 +01:00
gingerBill
c29b643a58
Move out some intrinsics into separate procedures in llvm_backend.cpp; Rename InlineRangeStmt to UnrollRangeStmt (eventually merge the two AST nodes)
2021-04-24 15:00:01 +01:00
gingerBill
c9b82a21e9
Move check_builtin_procedure to check_builtin.cpp
2021-04-23 10:01:52 +01:00
gingerBill
bd31a99bf7
Remove redundant auto_cast
2021-04-23 09:50:26 +01:00
gingerBill
17bbb48d8a
Warn on redundant auto_cast, and make an error on -vet
2021-04-22 17:36:28 +01:00
gingerBill
ac53577e9b
Improve auto_cast logic
2021-04-22 17:29:48 +01:00
gingerBill
896057b5a7
Reuse unused 'context' variables to minimize stack usage (-llvm-api)
2021-04-22 16:56:02 +01:00
gingerBill
01db195b47
Make main calling convention "odin" rather than "contextless" to simplify code generation
2021-04-22 16:26:28 +01:00
gingerBill
d33350e3a5
Add truncate_to_byte and truncate_to_rune for packages strings and bytes
2021-04-22 15:49:10 +01:00
gingerBill
8a86c4c7cc
Remove old code
2021-04-22 14:24:30 +01:00
gingerBill
1c9f48031d
Change function pass manager passes
2021-04-22 13:54:26 +01:00
gingerBill
7fcd5ecbd5
Change how lb_populate_function_pass_manager works by using the default LLVM passes when not using minimal optimizations
2021-04-22 12:35:01 +01:00
gingerBill
b68b090f13
Add intrinsics: overflow_add, overflow_sub, overflow_mul; Change byte swap behaviour in -llvm-api to be the same as the intrinsic
2021-04-22 11:33:46 +01:00
gingerBill
542098dc6f
Add intrinsics: byte_swap (integers and floats); count_ones; trailing_zeros; reverse_bits
2021-04-22 11:06:16 +01:00
gingerBill
0a66f8c9a3
Remove intrinsics.x86_mmx type
2021-04-22 10:39:20 +01:00
gingerBill
158e4c0b6c
Add @(cold) tag
2021-04-22 10:35:37 +01:00
gingerBill
47c7dc6a9b
Add new intrinsics: debug_trap, trap, read_cycle_counter, expect
2021-04-22 10:35:17 +01:00
gingerBill
65551ba8fb
Add optimization_mode attribute for procedures
...
Allowed modes: "none", "minimal", "size", "speed"
Currently: none == minimal and size == speed
2021-04-22 00:04:47 +01:00
gingerBill
c7d92562c2
Fix typo
2021-04-21 23:40:19 +01:00
gingerBill
5b3802b8ca
Add new -o:<string> flag as an alternative to -opt:<integer>
2021-04-21 23:39:48 +01:00
gingerBill
2fb0383e82
Add -build-mode:llvm-ir for -llvm-api backend
2021-04-21 23:25:08 +01:00
gingerBill
8077d5f565
Merge branch 'master' of https://github.com/odin-lang/Odin
2021-04-21 10:52:34 +01:00
gingerBill
6b45856e81
Remove useless error message for constant binary expressions with non-constant operations
2021-04-21 10:52:26 +01:00
gingerBill
e9b1d4f633
Fix #906
2021-04-20 10:34:41 +01:00
gingerBill
ba9f0dd553
Hack ABI for windows passing pointers to structures
2021-04-19 23:03:22 +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
201cad51a9
Fix typo
2021-04-19 22:41:52 +01:00
gingerBill
d21e522208
Add code that was accidentally removed
2021-04-19 22:35:59 +01:00
gingerBill
f1bdd2e60f
Improve #optional_ok logic for procedures; Add #optional_second for package runtime usage
2021-04-19 22:31:14 +01:00
gingerBill
0eb75886d1
Allow assignment of procedure calls with #optional_ok to single values
2021-04-19 16:02:36 +01:00
gingerBill
3612569624
Allow casting of #optional_ok call expressions
2021-04-19 15:46:12 +01:00
gingerBill
c83d13d0cb
Fix update_expr_type behaviour, along with fixing procedure groups updating the proc expr type
2021-04-19 15:12:10 +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
a4d0092b16
Remove temporary reference types
2021-04-19 11:02:09 +01:00
gingerBill
eb49b5f84a
Fix override_entity_in_scope behaviour to correctly to report the changes upstream better
2021-04-19 11:01:00 +01:00
gingerBill
ae04af4e4e
Add package flags
2021-04-18 20:19:03 +01:00
gingerBill
3baddd4116
Improve init_string determination for constants
2021-04-18 20:13:20 +01:00
gingerBill
6ae468828c
Improve odin-doc type information for Named types by storing the base type
2021-04-18 19:59:24 +01:00
gingerBill
b59e110fec
Add calling_convention to Type
2021-04-18 19:26:36 +01:00
gingerBill
4282688e60
Add calling_convention to odin-doc Type format
2021-04-18 19:26:21 +01:00
gingerBill
9b3fb25a41
Fix enumerated arrays for .odin-doc
2021-04-18 19:15:14 +01:00
gingerBill
2ce9873464
Remove dead comment
2021-04-18 18:53:19 +01:00
gingerBill
986844a0f0
Change elem_counts to i64le from u64
2021-04-18 18:48:56 +01:00
gingerBill
7c1f538c02
Change u32 to u32le
2021-04-18 18:46:29 +01:00
gingerBill
2f1c896290
Add -doc-format command for the new .odin-doc file format (to be used to generate documentation tools)
2021-04-18 18:33:15 +01:00
gingerBill
8827818b1d
Clean-up fallback io.read_at and io.write_at behaviour
2021-04-14 21:25:46 +01:00
gingerBill
e19958152a
Fix floattidf
2021-04-14 20:45:05 +01:00