Commit Graph

13351 Commits

Author SHA1 Message Date
Laytan Laats c8f0d27cee compiler: remove viral #force(_no)_inline
If a procedure was marked `#force_no_inline`, any procedure calls within
it would also implicitly be. This is not expected for multiple reasons:

1. `#force(_no)_inline` on a call expr works differently than on a procedure literal.
2. Adding the attribute on it and every called proc blows up the amount
   of work for the inliner pass and may increase the time it takes.
3. Putting `#force_no_inline` on a procedure to keep executable size
   down (like we do for some map procedures), benchmark it, or find it in
   asm/ir has the added effect of slowing those procedures down significantly
   and not representing truth.
2024-12-09 19:12:42 +01:00
Laytan Laats 6e1d028861 fix #4389 - retrieve file type by opening if other methods failed 2024-12-06 23:51:14 +01:00
Laytan Laats f1cae8d844 fix #4496 - allow unlock of unlocked mutex (making it consistent with windows behaviour) 2024-12-06 23:08:47 +01:00
Laytan Laats 7edd332993 fix #4536 - stack buffer overflow for size_of 0 types in struct unmarshal 2024-12-06 22:12:52 +01:00
Laytan Laats 676fe34863 fix #4547 - wasm -out without file extension 2024-12-06 19:38:53 +01:00
Laytan Laats 402f8dd576 raylib/rlgl: fix foreign imports after update to 5.5 2024-12-06 18:54:48 +01:00
gingerBill 7be0035578 Merge pull request #4560 from gfaster/which-nix-shell
add which to shell.nix to build with --pure
2024-12-06 14:21:16 +00:00
gingerBill e4bdc4ff7c Merge pull request #4562 from dozn/patch-1
Move Struct Field Zipping Outside of Loop
2024-12-06 14:21:01 +00:00
gingerBill 62768ad857 Merge pull request #4564 from gfaster/4553-regression-test
Add regression test for #4553
2024-12-06 14:20:51 +00:00
Gavin 25ae3d0785 Add regression test for #4553
This test is definitely imperfect (should have no erroneous failures,
only erroneous passes), but should serve as a good smoke test
if matrix alignment is ever broken again. Looking at the generated LLVM,
there is a bunch of weird choices for alignment chosen that might be
worth looking into.

It's also worth noting that the failure mode of this test is a #GP
exception, which I don't know how well the test runner handles in a
larger test corpus.
2024-12-05 15:26:18 -05:00
Laytan Laats cf53404f5f sync: fix no new values 2024-12-05 20:05:19 +01:00
Laytan Laats ac3a87c2cf sync: fix require results 2024-12-05 19:04:45 +01:00
Laytan Laats ad438f418d sync: fix futexes on wasm 2024-12-05 19:00:45 +01:00
gingerBill d452d37b93 Fix #4537 2024-12-05 15:51:05 +00:00
gingerBill e3b1646490 Fix #4552 2024-12-05 15:46:35 +00:00
gingerBill dd8e6e884c Try to fix #4553 2024-12-05 15:45:01 +00:00
gingerBill f5b16aa42a Fix #4561 2024-12-05 15:27:41 +00:00
dozn 37fb2754a1 Move Struct Field Zipping Outside of JSON Token Loop 2024-12-05 07:23:34 -08:00
gingerBill f7761ebcc4 Make odin.rc terser 2024-12-05 12:30:55 +00:00
gingerBill a4b071e864 Add /nologo 2024-12-05 12:30:17 +00:00
gingerBill b36a81ef53 ABI change: for indirect parameters size_of <= 16, do callee stack copy 2024-12-05 10:49:39 +00:00
Gavin 96691c364b add which to shell.nix to build with --pure 2024-12-04 18:10:19 -05:00
Laytan cdb86d69b3 Merge pull request #4556 from cornishon/index_multi
improve `strings.index_multi`
2024-12-04 22:01:49 +01:00
Adam Zadrożny ce51b79a37 Fix the unused variable errors 2024-12-04 21:09:47 +01:00
Adam Zadrożny 5dfc24882f improve strings.index_multi
There's no point searching for substrings after lowest_index,
so let's not.

This significantly improves performance on long strings.
2024-12-04 14:29:49 +01:00
gingerBill c79466ab3c Merge pull request #4548 from Bazzas-Forks/linalg-clamp-length
[core:math/linalg] Add `linalg.clamp_length(vector, max_length) -> clamped_vector`
2024-12-04 12:05:06 +00:00
Laytan 910b46ebf0 Merge pull request #4555 from ycros/fix-regex-num-groups
fix: regex's match_with_preallocated_capture returning num_groups
2024-12-04 12:46:57 +01:00
Ycros bf63e9b093 Add test for regex preallocated captures. 2024-12-04 14:38:07 +11:00
Ycros 7edc46f1b9 fix: regex's match_with_preallocated_capture returning num_groups 2024-12-04 13:51:27 +11:00
Jeroen van Rijn 04e8dcc042 Merge pull request #4554 from Kelimion/get-date
Add misc\get-date.c
2024-12-03 12:49:33 +01:00
Jeroen van Rijn ef5546aea5 Add misc\get-date.c
Prints the current date as YYYYMMDD without relying on PowerShell.

Hopefully fixes #4540
2024-12-03 12:42:13 +01:00
gingerBill b942479886 Minor improvement to type handing on failures 2024-12-02 15:57:20 +00:00
gingerBill 65de0256ce Fix #4535 2024-12-02 15:57:08 +00:00
gingerBill af8122e8c7 Merge pull request #4541 from Waqar144/work/thread-pool-use-queue
Use a proper Queue in thread.Pool
2024-12-02 12:04:28 +00:00
gingerBill 7d5ac2a164 Merge branch 'master' of https://github.com/odin-lang/Odin 2024-12-02 11:24:00 +00:00
gingerBill e2ba8ff6e6 Fix #4530 2024-12-02 11:23:55 +00:00
gingerBill 1a84820e83 Merge pull request #4542 from FourteenBrush/master
Pass allocator to implicitly (de)allocating procs in `core:log`
2024-12-02 10:55:09 +00:00
gingerBill d0f87913e2 Fix #4549 2024-12-02 10:49:49 +00:00
Bazzagibbs 4b76568596 Add linalg.clamp_length(vector, max_length) -> clamped_vector 2024-12-02 11:58:36 +11:00
Laytan 03a53ccce2 Merge pull request #4546 from thetarnav/correct-parsing-build-tag-newlines
Correct handling newlines between build tags in `core:odin`
2024-12-01 19:13:59 +01:00
Damian Tarnawski 26415bcb0e Correct handling newlines between build tags in core:odin
Previously I thought that each newline worked as `OR`
basically the same as `,`.

This corrects this to work as `AND` instead.
2024-12-01 18:21:26 +01:00
FourteenBrush f9dc848926 Pass allocator to implicitly (de)allocating procs in core:log 2024-11-30 23:43:39 +01:00
Waqar Ahmed 8a27042d24 Use a proper Queue in thread.Pool
With lots of tasks the dynamic array takes a big performance hit as its
allocating all the time on pop_front
2024-11-30 22:29:47 +05:00
Jeroen van Rijn 314c41ef33 Merge pull request #4534 from laytan/dynlib-unload-before-load
dynlib: unload library before loading again & add LIBRARY_FILE_EXTENSION constant
2024-11-28 21:20:07 +01:00
Laytan Laats 1cece52359 dynlib: unload library before loading again & add LIBRARY_FILE_EXTENSION constant 2024-11-28 21:08:08 +01:00
Jeroen van Rijn 6d83755e92 Fix assert when return value expected. 2024-11-28 20:44:57 +01:00
Jeroen van Rijn 276928170c Merge pull request #4532 from Kelimion/open_fix
Make `O_RDONLY` default for `os.open` on all platforms.
2024-11-28 16:04:49 +01:00
Jeroen van Rijn 8581240ece Make O_RDONLY default for os.open on all platforms.
And also moved Windows file procs to `os_windows.odin`, in line with all the other platforms who didn't have a dedicated `file_<platform>.odin`
2024-11-28 15:57:48 +01:00
gingerBill bb96e54308 Merge pull request #4531 from Nave55/master
Fix math binomial proc giving wrong result
2024-11-28 11:27:25 +00:00
Evan Martinez 36481f6d4a Fix binomial function 2024-11-28 00:28:26 -07:00