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
dev-2024-12
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