aboutsummaryrefslogtreecommitdiff
path: root/src/parser.hpp
Commit message (Collapse)AuthorAgeFilesLines
* Automatically emit objc_msgSend calls when calling imported or implemented ↵Harold Brenes2025-09-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Objective-C methods - Add intrinsics.objc_super() - Emit objc_msgSendSuper2 calls when an objc method call is combined with objc_super(self) - Fix objc_block return value ABI for large struct returns - Fix objc_implement method wrappers bad ABI for large struct returns and indirect args - Simplify parameter forwarding for objc_imlpement methods - Add intrinsics.objc_instancetype to mimi Objective-C instancetype* returns This facilitates returning the correct type on subclasses when calling mehtods such as `alloc`, `init`, `retain`, etc. - Refactor Objective-C class implementations generation so that hierarchies are properly initialized - Better codegen for context passing with ivar-based autocontext - Allow @superclass on imported objc-c objects - Better codegen for block forwarding invoker, arguments are forwarded directly
* Begin to support constant array of unionsgingerBill2025-09-281-0/+18
|
* Minimize mutex usage when in single threaded mode.gingerBill2025-09-101-0/+1
|
* `#unroll(N) for`gingerBill2025-01-101-0/+1
|
* Add `#+feature dynamic-literals`gingerBill2025-01-051-0/+2
|
* `#min_field_align` & `#max_field_align`; deprecate `#field_align` in favour ↵gingerBill2024-09-301-1/+2
| | | | of `#min_field_align`
* checker: delay foreign block checkingavanspector2024-08-261-0/+1
| | | | if file scope, otherwise as before
* Improve `parse_enforce_tabs` usagegingerBill2024-08-241-1/+4
|
* Manually implement tail-recursion for `parse_if_stmt`gingerBill2024-08-241-2/+0
|
* Add a recursion depth limit for #3987 with a consideration to use a `switch` ↵gingerBill2024-08-241-0/+2
| | | | statement or refactor the code to not use a large if-else chain
* Remove need for `BlockingMutex` in `Arena`gingerBill2024-07-151-3/+1
|
* Imply `#no_capture` to all variadic parametersgingerBill2024-07-141-2/+3
|
* Add `#no_capture args: ..T` to reuse the backing array stack memorygingerBill2024-07-141-2/+6
|
* Cache files, env, and argsgingerBill2024-07-091-0/+4
|
* Remove `*_test.odin`; always compile it for all targetsgingerBill2024-07-041-1/+0
|
* Add `intrinsics.procedure_of`gingerBill2024-06-101-0/+1
| | | | | | | | ```odin foo :: proc(x: $T) { fmt.println(x) } bar :: intrinsics.procedure_of(foo(int(123))) // parameters are never ran at compile time, similar to `size_of` bar(333) // prints 333 ```
* Delay checking foreign import paths until after global scope is checkedgingerBill2024-05-281-0/+1
|
* Begin moving `foreign import` import paths to be evaluated in the semantic ↵gingerBill2024-05-271-1/+1
| | | | phase rather than parsing.
* Add `#no_broadcast` procedure parameter to disallow automatic array ↵gingerBill2024-03-211-1/+2
| | | | programming broadcasting on procedure arguments
* Add `#row_major matrix[R, C]T`gingerBill2024-03-191-0/+1
| | | | | As well as `#column_major matrix[R, C]T` as an alias for just `matrix[R, C]T`. This is because some libraries require a row_major internal layout but still want to be used with row or major oriented vectors.
* Fix #3284gingerBill2024-03-161-0/+2
|
* Add field tags to `bit_field`gingerBill2024-02-221-0/+1
|
* Add general support for `bit_field`sgingerBill2024-02-221-0/+1
|
* Begin work adding `bit_field`gingerBill2024-02-221-0/+15
|
* Add `#field_align(N)`gingerBill2024-01-281-0/+1
| | | | | It sets the minimum alignment for the fields within a struct. This cannot be used with `#packed`, but can be used with `#align(N)`. If `#align(N)` is less than `#field_align(N)`, then a warning will be printed.
* Add frontend stuff instrumentation toolinggingerBill2024-01-071-0/+2
| | | | | | | //+no-instrumentation @(no_instrumentation) @(instrumentation_enter) @(instrumentation_exit)
* Add `or_break` and `or_continue` constructsgingerBill2023-09-301-0/+1
|
* Add `sanitize_address` attribute to all normal packagesgingerBill2023-09-211-0/+1
|
* Add attribute `@(require) import "foo"` to replace/supplement `_ :: foo`gingerBill2023-08-221-0/+1
|
* Disallow `import` declarations within a `when` statementgingerBill2023-08-041-0/+1
|
* Add separate `-vet` flags; `-vet-using-*` flags; `//+vet` file flagsgingerBill2023-07-311-0/+2
|
* Fix line error printing for error messagesgingerBill2023-06-191-2/+2
|
* Basic support for new procedure code (non-polymorphic, non-proc-group)gingerBill2023-06-151-0/+6
|
* Basic support for `#reverse for in` on normal arraysgingerBill2023-05-291-0/+1
|
* Minor change to handling of propagation of errors with `---` as a valuegingerBill2023-05-221-1/+1
|
* Add `intrinsics.type_merge`gingerBill2023-05-191-0/+9
|
* Add `struct #no_copy`gingerBill2023-04-151-0/+1
|
* Fix potential race condition when determining the package namegingerBill2023-01-161-0/+1
|
* Remove `auto_cast` procedure field flaggingerBill2023-01-161-2/+2
| | | | Fixes #2285
* Replace all queues with MPSCQueue where possiblegingerBill2023-01-121-0/+1
|
* General improves to `alloc_ast_node` and other unnecessary checksgingerBill2023-01-031-3/+2
|
* Use a package local mutex for `add_type_and_value`gingerBill2023-01-021-0/+1
|
* Remove need the MPMC in single threaded casegingerBill2022-12-221-3/+2
|
* Clean up mutex usage in the parsergingerBill2022-12-221-22/+29
|
* Add minor commentgingerBill2022-12-221-2/+2
|
* Revert "Change `tav` to be a pointer internally"gingerBill2022-12-221-5/+2
| | | | This reverts commit e98f1a28e68e82753728f58b3465793192b74f9d.
* Change `tav` to be a pointer internallygingerBill2022-12-221-2/+5
|
* Set the file's filename and directory in `init_ast_file`gingerBill2022-12-201-0/+5
|
* Remove dead code in the compilergingerBill2022-12-181-5/+0
|
* `gb_internal` a lotgingerBill2022-12-181-15/+15
|