This adds a really basic test runner that will execute test files using
`bun wiptest` and compare the output to make sure it's correct. It could
definitely be improved, especially in the speed department, but it's at
least functional now, which is better than we had before!
* minor edit: Makefile
Fixed a suggested command when ninja isn't found to the correct package name
* Makefile: minor edit
Ninja build has different names in different package managers. This handles both known instances.
* Makefile: ninja package name suggestion
When checking requirements, ninja build has a different name for brew and ubuntu/debian. This handles both.
* style: remove some trailing whitespace
* docs: make `identifier-cache` _before_ `jsc`
Running them the other way around results in a failed build.
* docs: `npm i` in both `test/snippets` _and_ `test/scripts`
`test/scripts` has node packages as well. If they aren't installed, then
some of the tests fail to start.
* docs: add `rust` to list of homebrew packages
One of the dependencies tries to run `cargo`, and will fail the build if
it can't. The `cargo` command is provided by the `rust` brew package.
* docs: clean up section on macOS code signing
This requirement applies to _all_ macOS builds, not just those on Apple
Silicon, and also had some slightly confusing wording.
* build: remove leading whitespace from flags
This leading whitespace was making my system treat the argument as a
file with name ` -L$(LLVM_PREFIX)/lib` (leading whitespace included),
instead of as a library path argument.
* build: try llvm@13 first, then fall back on bare llvm
The macOS instructions say to install `llvm@13`, which has a different
path than the bare `llvm` install (`brew --prefix llvm@13` != `brew
--prefix llvm`). This patch takes a slightly smarter approach:
1. If the user defined `LLVM_PREFIX` and it points to a valid path on
disk, use that.
2. If `LLVM_PREFIX` is NOT a valid path, try setting it to the `llvm@13`
path.
3. If it's STILL not a valid path, try the plain `llvm` path
4. If it's STILL not valid, set it to a user-friendly error.
There might be a better solution for doing this, I'm not well-versed in
Makefile syntax, but it's at least slightly better than it was before.
* fix(build): update cast signature
`std.math.cast` was changed in 0e6285c8fc31ff866df96847fe34e660da38b4a9.
It used to throw if the cast would overflow, but now it returns `null`
instead.