Commit Graph
100 Commits
Author SHA1 Message Date
gingerBill 7c5247f5fb Add package sys/cpu - implements processor feature detection 2020-11-06 00:39:09 +00:00
gingerBill 9ac6d45bd6 Add more procedures to package slice 2020-11-06 00:38:03 +00:00
gingerBill 6912ef1bc1 Merge branch 'master' of https://github.com/odin-lang/Odin 2020-10-29 09:58:15 +00:00
gingerBill 08fae7360a Fix ir printing for nested procedure literals indirectly through identifiers 2020-10-29 09:58:08 +00:00
gingerBill 4629754f7c Inline asm expression (-llvm-api)
See https://llvm.org/docs/LangRef.html#inline-assembler-expressions
Example:
```
x := asm(i32) -> i32 {
    "bswap $0",
    "=r,r",
}(123);
```
Allowed directives `#side_effect`, `#align_stack`, `#att`, `#intel` e.g. `asm() #side_effect #intel {...}`
2020-10-24 16:32:37 +01:00
gingerBill 0061e63db0 Merge branch 'master' of https://github.com/odin-lang/Odin 2020-10-24 15:08:46 +01:00
gingerBill 5fa488f163 Add intrinsics.cpu_relax for llvm-api 2020-10-24 15:08:35 +01:00
gingerBill feeb342c00 Improve multiple return value copy-elision 2020-10-20 17:08:55 +01:00
gingerBill c4dbc88a12 Improve array programming code generation 2020-10-20 15:38:41 +01:00
gingerBill f4b4cd0433 Specific set the code gen level for -llvm-api 2020-10-20 12:43:15 +01:00
gingerBill 4e5b8f2c61 Add -build-mode:assembly for -llvm-api 2020-10-20 12:35:12 +01:00
gingerBill 0be6ddc7e2 Add -microarch:<string> (e.g. -microarch:native) 2020-10-20 12:25:11 +01:00
gingerBill b1bdd95f19 Begin work on making packages import assembly sort files (.S) 2020-10-16 15:32:09 +01:00
gingerBill 063c0548b0 Add new package strings procedures: trim_prefix, trim_suffix, to_valid_utf8 2020-10-16 15:30:14 +01:00
gingerBill 41f6a684e1 Rename slice.sort_proc to slice.sort_by; add slice.sort_by_key 2020-10-16 14:55:36 +01:00
gingerBill 289908e0b8 Add +build ignore tag 2020-10-15 16:25:57 +01:00
gingerBill 5a28a7e0f5 Add intrinsics.type_field_index_of 2020-10-15 16:12:47 +01:00
gingerBill f8e697dbbb Fix indirect selector bug with using on offset_of 2020-10-15 14:58:57 +01:00
gingerBill 7fc3030c63 Update path/filepath to use new slice.sort; Add sort.reverse_interface 2020-10-14 20:47:13 +01:00
gingerBill edd802e1ff Add package slice; New sort.Interface with default sort.sort 2020-10-14 19:52:05 +01:00
gingerBill de13584be2 Add #no_bounds_check to crc procedures 2020-10-14 16:00:08 +01:00
gingerBill 8806283cf7 Improve location information for log.panic* 2020-10-14 15:59:45 +01:00
gingerBill ec5934705c Enforce do bodies to be on the same line as the control statement's condition or token 2020-10-14 15:59:19 +01:00
gingerBill fa33476438 Improve default temp allocator; Fix filepath.abs behaviour on Windows 2020-10-13 14:40:13 +01:00
gingerBill 1b4bccbc94 Add append_nothing 2020-10-08 12:23:44 +01:00
gingerBill 6eeb12a986 Improve default temp_allocator; make nil loggers do nothing; improve mem.Scratch_Allocator behaviour 2020-10-02 16:06:55 +01:00
gingerBill a65553293f Add mem.Small_Allocator 2020-10-02 11:09:36 +01:00
gingerBill 8f28312705 Fix pop behaviour, and improve assert messages by using #caller_location 2020-10-02 11:04:17 +01:00
gingerBill 3a4f0d85a6 Fix container.Array and container.Ring 2020-10-01 17:04:56 +01:00
gingerBill c604e359c7 Move flush to within the sbprint* procedures 2020-10-01 12:09:38 +01:00
gingerBill 66c648e5e0 Remove unused variable 2020-10-01 12:05:42 +01:00
gingerBill e83af93394 Allow flushing with strings.Builder; Make fmt.fprint* procedures use a custom flush procedure 2020-10-01 12:03:20 +01:00
gingerBill dd4c02a1b9 Fix multiple declared foreign procedures 2020-10-01 12:02:07 +01:00
gingerBill bc2151f529 Add new os_specific_*.odin files 2020-10-01 10:59:47 +01:00
gingerBill 252a864308 Reimplement the Windows OS dependencies in package runtime 2020-10-01 10:57:02 +01:00
gingerBill 9513cf1ac6 Fix os.stat code; make fmt.panicf diverging 2020-09-30 22:04:39 +01:00
gingerBill c35d533ce5 Replace the *_remove_range with procedures with remove_range 2020-09-30 12:38:40 +01:00
gingerBill 464e733b88 Merge branch 'master' of https://github.com/odin-lang/Odin 2020-09-29 11:11:42 +01:00
gingerBill 519dcc2b76 Add os.read_at and for Windows; fix mem.clone_slice; fix current directory locking code 2020-09-29 11:11:28 +01:00
gingerBill e95addb1f4 Revert user_data addition 2020-09-28 12:40:48 +01:00
gingerBill d343e47a86 Add user_data parameter to filepath.walk and filepath.Walk_Proc 2020-09-28 12:39:34 +01:00
gingerBill 1d21740afb Add filepath.walk 2020-09-28 12:29:14 +01:00
gingerBill 9ae3879956 Add os.stat, os.lstat, os.fstat, filepath.walk 2020-09-28 12:28:02 +01:00
gingerBill 2ebb94fa72 Allow os.read_dir to use a different allocator 2020-09-27 00:31:29 +01:00
gingerBill 96a0125599 Fix typo in reflect.set_union_variant_type_info 2020-09-27 00:30:54 +01:00
gingerBill 626d0736f4 Add more to package reflect (as_string, as_pointer, as_raw_data, relative_pointer_to_absolute) 2020-09-27 00:15:16 +01:00
gingerBill e26f63b448 Update package reflect 2020-09-26 23:51:42 +01:00
gingerBill b9076b0d5b Add package unicode/utf8/utf8string for efficient utf8 codepoint indexing to strings 2020-09-26 23:16:18 +01:00
gingerBill c43b8ef387 Merge branch 'master' of https://github.com/odin-lang/Odin 2020-09-26 23:12:20 +01:00
gingerBill b9f511954a Make runtime.slice_handle_error explicitly diverging 2020-09-26 23:12:04 +01:00
gingerBill 0bd38ba1f6 Add some comments to explain what the differences between packages path and path/filepath 2020-09-26 20:17:54 +01:00
gingerBill 49eaeccd84 Remove OS specific stuff from package path 2020-09-26 20:02:24 +01:00
gingerBill 840af6825a Update packages os, path, and filepath 2020-09-26 16:02:03 +01:00
gingerBill 3ccaf47566 Remove unused imports 2020-09-25 20:23:29 +01:00
gingerBill 8cc5cd1494 Add package path/filepath; Add os.stat for windows (TODO: unix) 2020-09-25 20:20:53 +01:00
gingerBill 6b634d5e46 Fix fmt with -vet 2020-09-25 15:54:23 +01:00
gingerBill 903ba1c5d8 Add built-in custom formatters for time.Time and time.Duration 2020-09-25 15:47:39 +01:00
gingerBill b42c7f9161 Update package path and fix bugs; add path.match which uses shell pattern matching 2020-09-25 11:43:51 +01:00
gingerBill 654b24e514 Add -disallow-do 2020-09-23 17:17:32 +01:00
gingerBill fc4fdd588e Remove usage of do in core library 2020-09-23 17:17:14 +01:00
gingerBill 4844dd4d96 Add check to block statements to see if they only contain one statement, a value declaration, and err. 2020-09-23 11:16:33 +01:00
gingerBill 609af3a651 Fix and clean up default procedure parameter code for non-constant types 2020-09-22 12:06:05 +01:00
gingerBill 20e4548999 Make llvm-c header use local includes 2020-09-18 13:18:28 +01:00
gingerBill 10afc58d7d Minor style change in parser.odin 2020-09-16 22:28:32 +01:00
gingerBill 97d7d8301a Fix ast.Branch_Node parsing in package odin/parser 2020-09-16 22:19:57 +01:00
gingerBill 33003d1bc1 Update README.md 2020-09-16 20:15:28 +01:00
gingerBill 59d9821bd9 Add intrinsics.type_has_field 2020-09-16 20:08:45 +01:00
gingerBill f530c80216 Fix -debug bug with internal startup procedures 2020-09-16 15:16:29 +01:00
gingerBill 4cf240ca05 Fix odin/parser issues 2020-09-15 22:14:23 +01:00
gingerBill ebad8e8990 Change how ir.cpp calls the startup type info procedure 2020-09-15 19:40:37 +01:00
gingerBill 2475c69f00 Remove runtime.os_stdout, since it is not required by the runtime 2020-09-15 14:16:44 +01:00
gingerBill c9dcb7242f Merge branch 'master' of https://github.com/odin-lang/Odin 2020-09-15 12:46:12 +01:00
gingerBill 9d976b04bc Fix +build tag logic 2020-09-15 12:45:44 +01:00
gingerBill 6f1e774a42 Move runtime os specific freestanding stuff to a separate file 2020-09-15 12:36:37 +01:00
gingerBill b94dde2817 Force used of imports in reflect/map.odin 2020-09-15 12:31:21 +01:00
gingerBill 92cd50d3f0 Add TargetOS_freestanding for future use 2020-09-15 12:29:32 +01:00
gingerBill 1ef1407f02 Update ODIN_VERSION 2020-09-15 12:28:15 +01:00
gingerBill edbad0709e Add -default-to-nil-allocator flag (sets ODIN_DEFAULT_TO_NIL_ALLOCATOR) 2020-09-15 12:27:53 +01:00
gingerBill bfc7d74967 Add relfect.map_entry_info_slice 2020-09-15 12:23:49 +01:00
gingerBill 9d91c46cb4 Move all os specific stuff for the runtime to one file 2020-09-15 12:19:56 +01:00
gingerBill f48a873954 Reorganize package runtime
Separates out the OS specific stuff into different files
2020-09-15 11:52:19 +01:00
gingerBill 4930a9c1a4 Add mem.clone_slice 2020-09-15 11:51:38 +01:00
gingerBill 0cd681e6b7 Expose runtime._startup_runtime to allow for freestanding targets in the future 2020-09-15 10:51:51 +01:00
gingerBill b8bebf4511 Fix typo in Small_Array procedure 2020-09-14 10:10:35 +01:00
gingerBill 1fd1203d8b Improve error message for multi-valued global declarations not be allowed 2020-09-12 16:04:02 +01:00
gingerBill ccb7c3513b Fix check_arity_match bug 2020-09-12 15:50:42 +01:00
gingerBill bf215377de Add edge case check for "" string 2020-09-11 16:20:46 +01:00
gingerBill d317d3d8b3 Simplify "" string code 2020-09-11 16:18:24 +01:00
gingerBill 77829af9de Fix delete("") on -llvm-api; Fix linalg stuff 2020-09-11 13:46:52 +01:00
gingerBill 97846d8390 Clean up quaternion_from_matrix(3|4) code 2020-09-10 21:19:59 +01:00
gingerBill 079b887313 Make procedure names consistent 2020-09-10 17:32:18 +01:00
gingerBill 6aa708a455 Fix Odin bug with "none" procedure calling conventions in the runtime 2020-09-10 16:36:33 +01:00
gingerBill 8f38b06c60 Add sanity conversion for rand.norm_float64 2020-09-10 15:42:07 +01:00
gingerBill 993fc577b2 Clarify euler angle procedures better 2020-09-10 15:33:50 +01:00
gingerBill 824491f410 Clean up Euler Angle code for math/linalg 2020-09-10 15:23:08 +01:00
gingerBill c1149dbdee Update math and math/linalg; add "pure_none" calling convention 2020-09-10 15:00:19 +01:00
gingerBill 7e625f6ee7 Add extra check for checking uniqueness of package names 2020-09-10 11:13:09 +01:00
gingerBill 2dfa3a5df7 Fix typo 2020-09-07 14:40:36 +01:00
gingerBill 1064622ff7 Improve math/rand functionality 2020-09-07 14:38:01 +01:00
gingerBill f5b8609160 Remove debug print 2020-09-07 12:15:54 +01:00