-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactoring our builds and tests #707
Comments
For accelerate, there are specific test files (
Note that these tests are currently not included in |
Would this new Makefile setup be a wrapper for tup or a reworking of what we have now? I think the tup system looks nice and it would tie in nicely with the "quick" tests. Some additional comments:
|
This is an interesting and somewhat inconvenient point. I guess the ideal case is that if you run Also, @larshum, I'm guessing the files compiled with
I don't think we should move to tup as the main/only build approach just yet, partly because of the FUSE difficulties on Mac, and partly because there's an issue that needs to be fixed before our setup works properly (I'm using a locally patched version until then).
I did not know you could do quite that level of fanciness in make targets. It would certainly be convenient with a quick way of specifying different subsets. It's worth noting though that we're not really using
I meant the |
Yes, that's the idea — both compiling and executing. |
It is still not possible to build If you want to check if it is installed I suppose you can do a As you probably already know, the tests for these two are currently defined in |
|
@br4sco Since these would be using externals I assume we expect them to fail when interpreted? The current compile tests seem to disable both optimizations and
@lingmar I'm guessing that these tests should work in interpreted mode, but that they might be too slow for it? Maybe only some of them? |
They don't have to be compiled and run as normal, via |
Sorry for the late reply. It is not important. You cannot currently do a
I don't remember exactly why, but some dependency isn't pruned. |
The JVM backend |
One more thing, I need some jar files to compile the java program used in the backend. Right now I fetch them from mvn repositories with |
Our build and test system is getting a bit unwieldy, and it currently requires a large number of files at the top-level of the repo. We'd like to address both of these points, and this issue is intended to track that effort.
Tasks
mc
files should have the following tests by default:mi compile --test
.mi eval --test
(and no arguments to the program itself).mc
-files that are tested as normal but only if the dependencies are available.mc
-files that should not be tested as normal, even if dependencies are available.mc
-files that require other flags or arguments, or things that are run in entirely different ways.Targets/interface
test-quick
, a small set of tests that use no optional dependencies, as a sanity check.test
, run all tests for which dependencies are installed, i.e., it is "smart". This should print what was chosen and what wasn't.test-all
, liketest
, but unconditionally run all tests, i.e., it fails if there's a dependency missing.build/mi
, the default target via full bootstrapping. Should maybe overwrite an already built compiler, so it doesn't need to be combined withmake clean
all the time?mi
.boot
, for the interpreter and the library.install
, install (already built)mi
executable andboot
library.install-boot
, install the (already built)boot
library.watch
, to watch for changes viaentr
and runtup
clean
, remove all files in the repository that are ignored (i.e., via.gitignore
), which should include all build artifacts.Questions/problems:
test
could (optionally) be told exactly which sets of tests to run, andtest-quick
andtest-all
are just special cases?mi
for the tests (installed, full bootstrapped, or bootstrapped via installed).watch
that does not usetup
? It would presently not handle dependencies, i.e., everything would be re-run all the time, which is probably not all that useful?watch
but only re-run a subset of the tests.Collected test information
test/examples/accelerate/**/*.mc
)which nvcc
) and Futhark (which futhark
). Also hardware requirements, so should perhaps not even be included unconditionally intest-all
.mi compile --accelerate
andmi compile --debug-accelerate
, followed by running as usual.stdlib/sundials/**/*.mc
)ocamlfind query sundialsml
test/examples/tuning/**/*.mc
)mi tune --test --disable-optimizations --compile --disable-exit-early --enable-cleanup
, followed by running as usual.stdlib/cp/solve.mc
)which minizinc
stdlib/jvm/compile.mc
)which java
andwhich javac
), should perhaps check version (>= 11?).The text was updated successfully, but these errors were encountered: