Commit Graph

115 Commits

Author SHA1 Message Date
David Mak 048fcb0a69 core: Switch to LLVM New Pass Manager 2023-09-18 11:35:15 +08:00
David Mak 676d07657a core: Add target field to CodeGenLLVMOptions
For specifying the target machine options when optimizing and linking.

This field is currently unused but will be required in a future
commit.
2023-09-18 09:46:24 +08:00
David Mak eb63f2ad48 meta: Update to Rust Edition 2021 2023-09-15 10:25:50 +08:00
David Mak 008d50995c meta: Update run_demo.sh
- Allow more than one argument to nac3standalone executable
2023-09-12 16:20:50 +08:00
David Mak 474f9050ce standalone: Expose flags in command-line 2023-09-12 16:20:49 +08:00
David Mak 3993a5cf3f core: Add LLVM options to WorkerRegistry 2023-09-12 10:57:05 +08:00
David Mak e4940247f3 standalone: Implement command-line parser using clap
In preparation for adding more command-line options.
2023-09-12 10:08:34 +08:00
David Mak 4481d48709 core: Use C-style for loop logic for iterables
Index increment is now performed at the end of the loop body.
2023-09-06 20:09:38 +08:00
David Mak e0de82993f core: Preserve value of variable shadowed by for loop
Previously, the final value of the target expression would be one after
the last element of the loop, which does not match Python's behavior.

This commit fixes this problem while also preserving the last assigned
value of the loop beyond the loop, matching Python's behavior.
2023-09-06 20:09:36 +08:00
David Mak 17b4686260 standalone: Adapt loop example to output loop variable 2023-09-06 18:56:45 +08:00
David Mak d37287a33d Cargo: Update dependencies 2023-09-04 10:43:57 +08:00
Sebastien Bourdeauducq aead36f0fd update dependencies 2023-03-08 15:19:09 +08:00
Sebastien Bourdeauducq f66ca02b2d update Rust dependencies 2022-08-05 16:58:57 +08:00
z78078 ebd25af38b nac3standalone: allow classes without explicit init (#221)
Reviewed-on: #304
Co-authored-by: z78078 <cc@m-labs.hk>
Co-committed-by: z78078 <cc@m-labs.hk>
2022-07-07 10:36:25 +08:00
ychenfo 8addf2b55e nac3standalone: add more tests 2022-06-01 17:58:16 +08:00
Sebastien Bourdeauducq 3f327113b2 update dependencies, use upstream inkwell 2022-04-27 15:41:46 +08:00
Sebastien Bourdeauducq 85f21060e4 update to LLVM 14 2022-04-18 18:47:20 +08:00
Sebastien Bourdeauducq a308d24caa nac3standalone: cleanup 2022-04-18 16:02:48 +08:00
Sebastien Bourdeauducq 1eac111d4c cleanup 2022-04-18 15:55:37 +08:00
ychenfo 44199781dc nac3standalone: add tests for operators 2022-04-18 15:31:56 +08:00
ychenfo 86ce513cb5 nac3standalone: fix broken test
previously this test unexpectedly passed because it is a slice assignment to extend the list, which is valid in CPython and hence in interpret_demo, and which also happened to give the same output in nac3 by memmove the elements in the list of bool
2022-04-05 18:21:46 +08:00
ychenfo 23b7f4ef18 nac3standalone: add tests for power 2022-04-04 22:10:56 +08:00
ychenfo b8ef44d64e nac3standalone: add test for default param 2022-03-30 04:05:47 +08:00
ychenfo bed33a7421 nac3standalone: add tests for tuple 2022-03-27 10:31:20 +08:00
Sebastien Bourdeauducq e4581a6d9b nac3standalone/demo: fix return type in loop.py 2022-03-26 21:10:12 +08:00
pca006132 1a82d296e7 nac3core/codegen: prevent users from modifying loop counter
Fixes #211
2022-03-26 20:58:37 +08:00
ychenfo 80631fc92b Option type support (#224)
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2022-03-26 15:09:15 +08:00
pca006132 41d62f7325 nac3core/toplevel: fixed typevar substitution bug 2022-03-23 00:25:10 +08:00
Sebastien Bourdeauducq 3f890f183c nac3standalone/demo: handle imports consistently 2022-03-19 09:14:27 +08:00
pca006132 234823c51a nac3standalone: added typevar test 2022-03-18 16:52:52 +08:00
Sebastien Bourdeauducq 0ca2797428 fix compilation warning 2022-03-17 21:31:45 +08:00
ychenfo 60b3807ab3 nac3standalone: add test for abs function 2022-03-08 23:26:01 +08:00
ychenfo 1cc276cb43 nac3standalone: add test for max function 2022-03-08 22:23:13 +08:00
ychenfo e9a17cf8f8 nac3standalone: add test for min function 2022-03-08 21:59:42 +08:00
pca006132 63b0f29728 Fix broken tests 2022-03-05 00:27:51 +08:00
Sebastien Bourdeauducq aa79c8d8b7 rename exception symbols in host code 2022-02-23 11:43:41 +08:00
pca006132 f97f93d92c applied rustfmt and clippy auto fix 2022-02-21 18:27:46 +08:00
pca006132 d9cb506f6a nac3core: refactored for better error messages 2022-02-21 18:24:19 +08:00
pca006132 352831b2ca nac3core: removed legacy location definition 2022-02-13 22:39:24 +08:00
Sebastien Bourdeauducq 91f41052fe test: remove outdated comment 2022-02-13 17:24:47 +08:00
pca006132 14d25b3b9d Fixed broken tests 2022-02-13 17:21:42 +08:00
Sebastien Bourdeauducq 4b8e70f746 nac3standalone: disable broken tests (#188) 2022-02-13 11:41:42 +08:00
Sebastien Bourdeauducq 31e76ca3b6 nac3standalone: add dummy support for artiq_personality
So existing tests can run again
2022-02-13 11:35:02 +08:00
pca006132 b18626b149 Fix compilation and test failures 2022-02-12 22:50:32 +08:00
ychenfo 43048eb8d8 nac3standalone: add tests for list slice and len 2022-01-26 03:58:27 +08:00
Sebastien Bourdeauducq ced7acd871 check_demos: improve output 2022-01-24 11:38:43 +08:00
Sebastien Bourdeauducq f8e3f7a4ca add some basic list tests 2022-01-23 14:28:08 +08:00
Sebastien Bourdeauducq ba997ae094 flake: run nac3standalone demo checks
also keep auxiliary projects in separate Nix outputs
2022-01-23 11:32:34 +08:00
Sebastien Bourdeauducq 2a0caf931f nac3standalone: work around bash mess with exit codes of substituted processes
https://unix.stackexchange.com/questions/376114/how-to-detect-an-error-using-process-substitution
2022-01-23 11:15:11 +08:00
Sebastien Bourdeauducq 64b94955fe nac3standalone: reorganize demos, compare against cpython 2022-01-23 10:35:06 +08:00