Running this code with the hard-coded x9 register results in not
returning the cycle count, but some other value.
This code (using $0 as the register), works on arm64 Linux and Darwin.
This updates all the darwin stb libraries to be built as universal
libraries - meaning they contain both Intel and Apple Silicon versions.
This should make these more generally compatible.
Also, add stb_vorbis.a in the same way. Not sure why it was missing
before.
This Darwin-specific target builds each stb library with macOS-specific
options so that the results are universal static libraries that should
work on Intel (x86_64) and Apple Silicon (arm64) machines. They also
should work on macOS 10.12 and above (which should match what Odin
compiles for).
The default Makefile target will build the darwin rule if its invoked on
a macOS machine, otherwise it'll invoke the more general unix target.
This also updates the library to GLFW 3.3.8
This includes the lib-universal static library, rather than just the
Intel one (lib-x86_64), so software building with GLFW on Apple Silicon
will work again.
When asserts are disabled, code within the assert isn't run. Having
expect_token within an assert means that the state of the Parser is
mutated when asserts are run, but not when they aren't.
There's already a wrapper procedure for this pattern, which I have
reused here.
Make os.get_env consistent across Unixes
This matches the function name and API from env_windows.odin and os_linux.odin, which should be the same everywhere. Meaning:
* named get_env and not getenv
* return a string (empty if the environment variable is not found)
* accept a default value parameter for the allocator (defaulting to context.allocator)
* calls lookup_env which returns an extra found boolean value
This is so that you don't have to write platform/OS conditionals when getting environment variable values from the stdlib os.get_env/getenv function.