Laytan Laats
ef6a73c7ef
fix not setting cc before using it in abi computations
2024-07-01 01:30:44 +02:00
Laytan Laats
e3dde8caf8
make structs with multiple fields always return indirect in wasm c abi
2024-07-01 00:50:10 +02:00
Laytan Laats
604551eb2d
wasi: make the demo run on wasi and run it in CI
2024-06-29 23:15:31 +02:00
Laytan Laats
b79d7e6917
disallow non-global foreign import of variables on wasm
2024-06-28 01:34:09 +02:00
Laytan Laats
1c199f52d6
tlsf: destroy first pool & properly zero memory
2024-06-27 19:27:07 +02:00
Laytan Laats
108b8feb35
Add vendor:wgpu
2024-06-12 17:22:02 +02:00
Laytan Laats
71929f737b
add forced shutdown to new test runner
...
Currently, a Ctrl+c starts a graceful shutdown of the tests and runner.
Sometimes tests get stuck and this would never complete.
This simply adds an extra step, if Ctrl+c is given for the second time,
just `os.exit` right away.
2024-06-10 15:35:23 +02:00
Laytan Laats
6d862cc4e5
fix unreachable hit when param and/or return have complex inits
...
Fixes #3630
2024-06-09 04:43:19 +02:00
Laytan Laats
3628154849
fix swizzle crash due to wrong alignment
...
Fixes #3691
2024-06-09 03:33:23 +02:00
Laytan Laats
9ad9236c3b
fix large ints amd64 sysv abi
...
Fixes #3707
2024-06-09 02:47:05 +02:00
Laytan Laats
00dfff7ee0
core/thread: fix a deadlock situation on unix
2024-06-07 20:28:09 +02:00
Laytan Laats
b35e72c82b
core/sync: fix wrong timeout calculation, time.Duration is ns already
2024-06-07 20:27:33 +02:00
Laytan Laats
072825ac5a
add MacOS 14.5 to 'core:sys/info' and 'odin report'
2024-06-07 17:42:41 +02:00
Laytan Laats
e627fcb0e6
fix not printing Error: when terminal has no color support
2024-06-07 16:58:23 +02:00
Laytan Laats
29250f2657
fix regression in test_issue_2395
2024-06-07 16:33:38 +02:00
Laytan Laats
9122c20d4b
update actions/checkout
2024-06-07 15:57:09 +02:00
Laytan Laats
0a528777e8
utilize odin test -all-packages instead of (make/bat) scripts for running tests
2024-06-07 15:50:00 +02:00
Laytan Laats
f2be35f1f0
remove caught unused define
2024-06-07 15:22:14 +02:00
Laytan Laats
ee93d7c05e
add error message for unknown test log level
...
It would previously just be a compilation error about a missing
return statement.
2024-06-07 15:13:09 +02:00
Laytan Laats
315695b4f8
collect and show docs of defineables
2024-06-07 15:08:41 +02:00
Laytan Laats
fa08690686
explicit integer conversions
2024-06-06 19:49:51 +02:00
Laytan Laats
b818a77131
check if -define is actually used
2024-06-06 19:46:01 +02:00
Laytan Laats
9a95049393
-show-defineables and -export-defineables
2024-06-06 19:44:54 +02:00
Laytan
e2eb3cdd8a
fix linking on weird linuxes
2024-06-06 19:23:36 +02:00
laytan
08382cb05d
orca windows
2024-06-05 19:28:40 +02:00
Laytan Laats
8455e159f5
improve orca target
2024-06-05 20:57:39 +02:00
Laytan Laats
dbaf1a1ce0
compile stb_vorbis
2024-06-04 20:26:21 +02:00
Laytan Laats
cd99625dd3
ci: compile needed libraries
2024-06-04 20:21:52 +02:00
laytan
2a526058b3
fix passing pointer to constant in non-odin cc
2024-06-04 20:15:47 +02:00
Laytan Laats
3e159736cd
use #exists to provide good errors for common missing libraries
2024-06-04 20:13:51 +02:00
Laytan Laats
b47a15733d
implement #exists(path)
2024-06-04 19:06:13 +02:00
Laytan Laats
4f5b2bd127
fix crash when you have 2 #load_directory calls with the same path
2024-06-04 19:01:50 +02:00
Laytan Laats
7d29389834
fix debug info IR error on LLVM < 13
2024-06-04 14:41:42 +02:00
Laytan Laats
8a521648b9
wasm: fix runtime.js even more for wasm64p32
...
- make the int size configurable in the `runWasm` call, no more
constants to hunt down and change
- make storeU64 and storeI64 handle bigints, this is needed in the
odin_dom library
- fix alignment issues within init_event_raw
2024-05-31 20:57:15 +02:00
Laytan Laats
3a0ec3d6a8
wasm: fix target wasm64p32 runtime procs
...
LLVM generates calls with `i32` regardless of target, so if a call to
any of these procs was generated this failed to compile.
I opted to fix by changing from `int` to `i32` on wasm64p32 and adding
`#any_int` so existing code keeps working.
2024-05-31 16:32:27 +02:00
Laytan Laats
6bbe7d88b8
microui: make clipboard optional during init
...
Clipboard is an optional addition to the microui functionality, but the
init function makes it look like it is required. Additionally, a bunch of
the examples both on the Odin-Lang/examples repo and others are now
"broken".
2024-05-30 16:19:33 +02:00
Laytan Laats
eeb057b76d
darwin: fix sysroot retrieval for some systems
...
Got a report on Discord that the current way didn't work for a user,
this change did work and I confirmed with @harold-b (who initially added
this) that it also works for them and is actually a better way.
2024-05-30 01:53:38 +02:00
Laytan Laats
692ca13ffd
wasm: fix the WheelEvent not storing data properly
...
A `WheelEvent` is also an instanceof `MouseEvent` so it was never
hitting the if statement for the `WheelEvent`.
2024-05-30 01:49:30 +02:00
Laytan Laats
5027cfb618
revert $(llvm-config --bindir)/clang++ to get the cpp compiler
...
A few reports of either people not having this clang++ or having it but
it not finding system headers. On top of that, the reason we added this
in the first place was a bug that surfaced on clang-18 which we've since
fixed.
Order will now be clang++ from path, then the llvm bindir clang++, then an
error.
This can all still be overwritten with `CXX=blah make` like before.
2024-05-26 20:11:07 +02:00
Laytan Laats
aa72050586
wasm: enable default temp allocator
...
After #3592 I think it makes sense to also enable the temp allocator by default
2024-05-24 15:01:02 +02:00
Laytan Laats
e08b51ed73
correctly load/store uint&int in the runtime.js for wasm64p32
2024-05-17 16:32:34 +02:00
Laytan Laats
f42b1c4973
add a default heap/general purpose allocator for wasm to base:runtime
2024-05-16 23:08:40 +02:00
Laytan
d7fdccb08c
fix a couple of -vet-style failures after f54977336b
2024-05-09 19:39:48 +02:00
Laytan
98827c867d
fix duplicate suggestions and add missing newline
2024-05-09 19:21:39 +02:00
Laytan Laats
9d1db48549
remove is_packed bodge
2024-05-07 17:25:17 +02:00
Laytan
b0b60fe7ed
fix segfault in release builds of the compiler with clang++-18
2024-05-07 16:52:46 +02:00
Laytan
87b099b5aa
fix merge conflict
2024-05-07 16:52:46 +02:00
Laytan Laats
77efdcd899
fix packed gep loads with wrong alignment
2024-05-07 16:52:46 +02:00
Laytan Laats
58c0abb98d
revert wrong approach in fixing the load alignment
2024-05-07 16:52:46 +02:00
Laytan
d93cc18dac
fix packed gep loads with wrong alignment
2024-05-07 16:52:46 +02:00
Laytan Laats
ecddf3b7f1
llvm-18: cleanup
2024-05-07 16:52:46 +02:00
Laytan Laats
a3821615dc
llvm-18: fix windows build error because of include
2024-05-07 16:52:46 +02:00
Laytan Laats
f9a7d2bf04
llvm-18: enable static map calls on non amd64sysv targets
2024-05-07 16:52:46 +02:00
Laytan
c219ca5b1b
llvm-18: fix undocumented breaking change on i128 alignment
2024-05-07 16:52:46 +02:00
Laytan Laats
f64e8ffd64
llvm-18: fix linking the compiler with clang-18
2024-05-07 16:52:46 +02:00
Laytan Laats
e3e04ffa22
llvm-18: enable sroa and static map calls
2024-05-07 16:52:46 +02:00
Laytan
043dd98e91
fix demo out of bounds error
2024-05-07 16:52:46 +02:00
Laytan
b91e7f5c51
llvm-18: linux (amd64)
2024-05-07 16:52:46 +02:00
Laytan Laats
bb58926b7a
llvm 18: general unix and darwin specifics
2024-05-07 16:52:46 +02:00
Laytan Laats
eaab17f8fb
sys/linux: fix open bits
2024-05-05 14:16:21 +02:00
Laytan Laats
ee818304f3
fix invalid JSON when an error does not have a position
2024-05-05 00:01:14 +02:00
Laytan Laats
8aab395c70
darwin: fix minimum os version check not being inclusive
2024-05-02 21:18:49 +02:00
Laytan Laats
8506e64345
sync: fix deadlock in one shot event
2024-05-02 20:49:29 +02:00
Laytan Laats
25f1d0906d
compiler: improve target features support
2024-05-02 00:59:52 +02:00
Laytan Laats
c0ca26ac17
sys/info: add missing @(private)'s
2024-04-30 00:24:09 +02:00
Laytan Laats
b41395e3b4
sys/info: update doc.odin
2024-04-30 00:24:09 +02:00
Laytan Laats
d40c207fde
sys/info: retrieve better CPU description on Darwin
...
Previously either `ARM` or `ARM64`, now you get something like `Apple
M1`
2024-04-30 00:24:09 +02:00
Laytan Laats
8660718ebe
sys/info: add feature detection for Darwin and Linux ARM
2024-04-30 00:24:09 +02:00
Laytan Laats
485afb011c
sys/info: improve platform_linux
...
1. fix the `linux.open` call, passing `{ .RDONLY }` becomes `0x00000001`
while `RDONLY` is supposed to be `0x00000000`
2. fix the case where `/etc/os-release` starts with `PRETTY_NAME`
`strings.index` was used but was checking `> 0` while `0` is valid
3. remove unneccesary temporary allocations
4. simplify the logic
2024-04-30 00:24:09 +02:00
Laytan Laats
9e94e9dac1
sys/info: remove unneccesary build tags
2024-04-30 00:24:09 +02:00
Laytan Laats
cebe6bd982
sys/unix: add sysctlbyname for darwin
2024-04-30 00:24:09 +02:00
Laytan Laats
c58da76562
sys/darwin: fix sysctl and sysctlbyname syscalls
2024-04-30 00:24:09 +02:00
Laytan Laats
e896efdaeb
sys/info: add easy way of getting the MacOS version
2024-04-30 00:24:09 +02:00
Laytan Laats
cc5faecced
wasm: add the fprint procedures to fmt
...
This makes the `log` package work on wasm
2024-04-28 16:10:04 +02:00
Laytan Laats
0530f86a48
fix: buddy allocator wrong query info pointer
2024-04-28 16:09:03 +02:00
Laytan Laats
4fea5720a5
wasm: allow -default-to-nil-allocator
2024-04-28 16:05:41 +02:00
Laytan Laats
d3bd1c2110
improve some Negative_Read/Negative_Write logic
...
Returns the actual error if one is set, instead of swallowing it for the
less descriptive negative error.
Also fixes a out-of-bounds slice error in `bufio.writer_write` because
it wasn't checking the returned `m`.
2024-04-25 19:08:48 +02:00
Laytan Laats
a4cec2e8b8
sys/darwin/foundation: fix Application->sendEvent signature
2024-04-24 19:51:08 +02:00
Laytan Laats
e8c5bb4629
compiler: support returning 0 sized types in arm64 abi
2024-04-24 19:50:39 +02:00
Laytan Laats
448827c0e4
ci: fix macOS versions
2024-04-24 18:29:28 +02:00
Laytan
d1a1e8f646
fix linking with clang-18
...
Because we currently just use the clang from the user's path linking
suddenly breaks when the user updates their system clang to 18 with an
error about an unknown option -arch.
I had already fixed it for my LLVM 18 PR but it seems like a good idea
to get this in already to avoid that breakage (had a few people come to
the Discord with it and an issue).
This fixes #3461
2024-04-22 20:58:54 +02:00
Laytan Laats
90369b669b
fix direct proc args debug info
2024-04-22 19:36:24 +02:00
Laytan Laats
9f97056c14
add 'odin root' command
2024-04-13 20:08:57 +02:00
Laytan Laats
d2ca91b830
fix wasm runtime.js storeString to support Unicode
2024-04-13 19:34:13 +02:00
Laytan Laats
af6d2480fa
add bit_field parsing to core:odin/parser
...
Also adds it to the core type thingy like it is in the compiler.
2024-04-10 01:01:32 +02:00
Laytan Laats
9c958ee66d
fix nasm check
2024-04-08 20:43:52 +02:00
Laytan Laats
ce196529dc
enable the required target feature atomics when using them in wasm
2024-04-08 13:56:04 +02:00
Laytan Laats
9d8bb7f4e4
fix _end being called before the actual end when using the step function
2024-04-08 13:54:23 +02:00
Laytan Laats
667883b3d5
fix js_wasm time.tick_now, performance.now() returns a float
2024-04-08 13:53:16 +02:00
Laytan Laats
b150f49c46
fix wasm atomics
...
Fixes #2745
2024-04-06 23:32:38 +02:00
Laytan Laats
d83532d29e
fix raygui GuiFade being renamed to GuiSetAlpha
2024-04-06 20:20:16 +02:00
Laytan Laats
133b45d843
fix amd64 sysv abi to pass asan everywhere
...
I verified the PR by running the entire test suite of Odin itself with
`-sanitize:address` and also the ols test suite (which caused unique problems
before).
A test has also been added with some problematic code, Windows seems to
have problems with asan in CI or in general so it is not ran there.
The LB_ABI_COMPUTE_RETURN_TYPES block has been removed entirely because
it was unused, I got pretty confused why it didn't effect anything at
first.
Fixes #3211
2024-04-04 23:45:23 +02:00
Laytan Laats
31407d9b1b
fix 128 bit int alignment on arm64
...
Fixes #2403
2024-04-04 18:39:41 +02:00
Laytan Laats
1af84e082c
add some wsa based additions to core:sys/windows
2024-04-04 17:09:12 +02:00
Laytan Laats
a7056f2b4f
fix lbArg_Ignore logic
...
Fixes #2698
2024-04-04 16:58:22 +02:00
Laytan Laats
5339e1e1b6
fix objc proc group edge case
...
Fixes #2648
2024-04-03 21:21:46 +02:00
Laytan Laats
b754c1e072
fix -vet warning for stack overflows not showing up
...
Due to the placement of this code, the warning would only ever be added
if the variable was also either unused or shadowed.
2024-04-03 01:05:54 +02:00
Laytan Laats
3a0df80066
correct newly found vets
2024-04-03 00:52:58 +02:00
Laytan Laats
21fcf7c874
fix vet scope bug skipping some scopes
...
Fixes #3146
2024-04-02 23:59:38 +02:00
Laytan Laats
fc30bde0f6
fix untyped nil into c varargs
...
Fixes #2842
2024-04-02 18:49:35 +02:00