aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | Add `#row_major matrix` support for raddbggingerBill2025-05-071-0/+17
| | | | | |
| * | | | | Add column major matrix supportgingerBill2025-05-072-17/+95
| | | | | |
| * | | | | Only add custom section for Windows (currently)gingerBill2025-05-071-1/+2
| | | | | |
| * | | | | Begin work on adding support for the `.raddbg` section for the RAD DebuggergingerBill2025-05-072-14/+64
| | | | | |
* | | | | | fix another type alias issue with mini cycleLaytan Laats2025-05-261-2/+6
| | | | | |
* | | | | | Add comments to `builtin.odin`, documenting ODIN_* constants. (#5218)Jeroen van Rijn2025-05-264-81/+101
| |_|/ / / |/| | | | | | | | | And document constants not previously listed.
* | | | | Add `Suggestion: 'context = runtime.default_context()'`gingerBill2025-05-241-0/+2
| | | | |
* | | | | Rename -keep-test-executable to -keep-executableJeroen van Rijn2025-05-232-11/+11
| | | | |
* | | | | your yourJeroen van Rijn2025-05-231-1/+1
| | | | |
* | | | | Tweak #5202Jeroen van Rijn2025-05-232-21/+5
| | | | | | | | | | | | | | | | | | | | Back out the new `-build-only` for tests in favor of the more established `-build-mode:test`, but retain the new `-keep-test-executable` option and default cleanup of test executables.
* | | | | Enable all sanitizers on FreeBSDFeoramund2025-05-223-10/+34
| | | | |
* | | | | Delete test executable after running, add `-keep-test-executable`Feoramund2025-05-222-1/+30
| | | | |
* | | | | Add `-build-only` for `odin test` commandFeoramund2025-05-222-1/+13
| |/ / / |/| | | | | | | | | | | This allows test executables to be only built, not run too.
* | | | Merge pull request #5173 from Feoramund/fix-linux-shared-lib-runtime-callgingerBill2025-05-221-0/+8
|\ \ \ \ | | | | | | | | | | Keep shared libraries from calling main program's startup/cleanup procs on Linux
| * | | | Keep shared libraries from calling main program's startup/cleanup procs on LinuxFeoramund2025-05-221-0/+8
| | | | |
* | | | | Only trim `.odin` from build filenamesFeoramund2025-05-221-3/+26
| | | | |
* | | | | Slight tweak.Jeroen van Rijn2025-05-211-1/+1
| | | | |
* | | | | List -subtarget in `odin help build`Jeroen van Rijn2025-05-211-50/+65
| | | | |
* | | | | Remove now unnecessary checks.Jeroen van Rijn2025-05-211-6/+2
| | | | |
* | | | | Fix #5177 - Tweak error messages.Jeroen van Rijn2025-05-211-0/+10
| | | | |
* | | | | Add `/usr/local/lib` to FreeBSD linker pathFeoramund2025-05-201-0/+3
| | | | |
* | | | | Do not call disabled deferred proceduresFeoramund2025-05-191-0/+6
| | | | |
* | | | | -dynamic-literalsJeroen van Rijn2025-05-194-2/+8
| | | | |
* | | | | Merge pull request #5181 from Feoramund/fix-5167Jeroen van Rijn2025-05-191-22/+80
|\ \ \ \ \ | | | | | | | | | | | | Make `odin help` more precise
| * | | | | Make certain commands fail if passed excess argumentsFeoramund2025-05-191-0/+12
| | | | | |
| * | | | | Check for `-help` sooner and show it immediatelyFeoramund2025-05-191-5/+10
| | | | | |
| * | | | | Sync command descriptions between `odin help` and usageFeoramund2025-05-191-2/+2
| | | | | |
| * | | | | Add missing commands to `odin help`Feoramund2025-05-191-0/+6
| | | | | |
| * | | | | Make `odin help` more precise about what it acceptsFeoramund2025-05-191-15/+50
| | | | | |
* | | | | | Re-enable static map calls on AMD64 SysVFeoramund2025-05-181-6/+0
|/ / / / /
* | | | | Merge pull request #5171 from laytan/fix-global-and-static-anygingerBill2025-05-183-60/+60
|\ \ \ \ \ | | | | | | | | | | | | fix global and static any
| * | | | | fix global and static anyLaytan Laats2025-05-173-60/+60
| |/ / / / | | | | | | | | | | | | | | | Fixes #4627
* / / / / Use `--sysroot` instead of `-Wl,-syslibroot` on DarwinFeoramund2025-05-181-1/+11
|/ / / / | | | | | | | | | | | | | | | | This keeps the linker from using the wrong SDK and mirrors how we build the Odin compiler itself in `build_odin.sh`.
* | | | @(init), @(fini) and @(export) procedures are classified as used.Jeroen van Rijn2025-05-171-2/+7
| | | | | | | | | | | | | | | | For the purposes of `-vet-unused-procedures`, exported procedures and `@(init)` and `@(fini)` are now disregarded.
* | | | Merge pull request #5162 from 0xrsp/tounsignedgingerBill2025-05-172-0/+87
|\ \ \ \ | | | | | | | | | | new compiler intrinsics type_integer_to_unsigned, type_integer_to_unsigned
| * | | | add: type_integer_to_* error messages0xrsp2025-05-151-6/+3
| | | | |
| * | | | new compiler intrinsics type_integer_to_unsigned,type_integer_to_signed0xrsp2025-05-152-0/+90
| | | | |
* | | | | Add debug info for labels (#4385)tf2spi2025-05-152-5/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Emit label debug info w/o location * Insert debug label call * Slight refactor for later fix * Improve debug labels for block statements * Improve debug info with for loops * Generate label lbBlocks w/ debug * Lightly refactor lb_add_debug_label * Revise comments, add null check assertion * Use LLVM-C API for debug labels * Prefer C DILabel API for POSIX, fallback to CPP * Use version check for LLVM-C DILabel
* | | | | fix compat with earlier llvm versionsLaytan Laats2025-05-151-1/+1
|/ / / /
* | | | Parse odin version date out of HEAD commit if availableJeroen van Rijn2025-05-131-1/+7
| | | |
* | | | Change Odin's RTTI section name to `.odinti`gingerBill2025-05-131-1/+1
| | | |
* | | | Handle "untyped" casegingerBill2025-05-121-1/+9
| | | |
* | | | Add `compress_values`gingerBill2025-05-123-0/+244
| | | |
* | | | some ABI fixups and improvementsLaytan Laats2025-05-092-31/+69
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Started with trying to enable asan in the CI for MacOS, noticed it wasn't enabled on the `tests/internal` folder, it came up with a couple of issues with the abi/OdinLLVMBuildTransmute that this also solves. - Looking at clang output for arm64, we should be promoting `{ i64, i32 }` to `{ i64, i64 }` - after doing the previous point, I noticed this is not handled well in OdinLLVMBuildTransmute which was emitting loads and stores into the space of a value that was alignment, asan does not want this, looking at clang output again, a memcpy is the appropriate way of handling this. - Having done this we don't need the hacky "return is packed" set anymore in the amd64 sysv ABI anymore either
* | | Place RTTI into its own section `.odin-rtti`gingerBill2025-05-092-0/+11
| | |
* | | Merge pull request #5117 from bogwi/bug/5024gingerBill2025-05-098-14/+84
|\ \ \ | | | | | | | | Bug/5024
| * | | CHECK 4 donebogwi2025-05-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original errors: 1. `5024.odin(127:15) Error: Invalid use of a polymorphic type 'List($T)' in variable declaration` 2. `5024.odin(129:17) Error: Cannot determine polymorphic type from parameter: 'invalid type' to 'List($T)'` Are gone. We now have a single, different error: `5024.odin(124:28) Error: Unspecialized polymorphic types are not allowed in procedure parameters, got List($T)` This error points directly to the `list : List($T)` parameter within the `List_Filter` procedure definition. This seems much more relevant to the actual problem (the interaction between the generic `List_Filter` and the concrete `default_filter`) than the original error about the variable declaration. While this new error message might not be exactly pinpointing the default parameter issue, it correctly identifies the problematic procedure definition (`List_Filter`) as the source of the error, rather than the variable declaration (`my_list`). This seems like a step in the right direction for improving the error reporting for this kind of scenario.
| * | | CHECK 3 donebogwi2025-05-052-10/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enhance support for polymorphic procedures in type checking 1. In src/check_type.cpp, added special handling for polymorphic procedures used as default parameter values. We now allow a polymorphic procedure to be used as a default parameter value, even when its type parameters can't be immediately determined. 2. In src/check_expr.cpp, we modified the check_is_assignable_to_with_score function to handle the special case of assigning a polymorphic procedure as a default parameter. The function now allows a polymorphic procedure to be assigned to a concrete procedure type in this specific context.
| * | | CHECK 2 donebogwi2025-05-053-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for handling generic types in LLVM backend - Updated `lb_type_internal` to return a pointer type for unspecialized generics. - Modified `write_type_to_canonical_string` to handle specialized generics without panicking. - Enhanced `default_type` to return the default type of specialized generics when applicable.
| * | | CHECK 1 donebogwi2025-05-053-3/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix panic in LLVM backend when using generic procedure with default arguments - Fixed panic in `llvm_backend_proc.cpp` when using unspecialized polymorphic procedures as defaults. - Ensured correct type inference when generic procedures are used as default parameters.