Commit Graph

558 Commits

Author SHA1 Message Date
pca006132 9850cbe313 nac3core/codegen: optimize for every function
This speeds up compilation and reduces memory usage.
2021-10-17 12:56:11 +08:00
pca006132 1f5bea2448 nac3core/codegen: refactor according to #23 2021-10-16 22:17:36 +08:00
pca006132 c4259d14d1 fixed some clippy warnings 2021-10-16 18:08:13 +08:00
pca006132 26076c37ba nac3core/typecheck: supports recursive type inference 2021-10-16 15:56:49 +08:00
Sebastien Bourdeauducq fd0b11087e nac3core: use round instead of rint. Closes #61 2021-10-11 08:18:52 +08:00
Sebastien Bourdeauducq 3a1dd893a1 nac3artiq/demo: get closer to regular ARTIQ 2021-10-10 17:45:38 +08:00
pca006132 a4ccac2329 nac3artiq: implements #55, #56 2021-10-10 16:26:01 +08:00
pca006132 77542170fd nac3core: fixes #60 2021-10-10 15:01:06 +08:00
pca006132 a3ce5be10b nac3core: fixes #32 and #57 2021-10-09 16:20:49 +08:00
Sebastien Bourdeauducq a22552a012 nac3artiq: work around #56 2021-10-09 15:52:45 +08:00
Sebastien Bourdeauducq 6ba74ed9f6 nac3artiq: allow creating drivers on device 2021-10-09 15:51:47 +08:00
Sebastien Bourdeauducq 8b32c8270d nac3artiq: explain delayed registration 2021-10-09 15:21:41 +08:00
Sebastien Bourdeauducq 5749141efb nac3artiq: add simple KernelInvariant CPython wrapper 2021-10-08 23:46:46 +08:00
Sebastien Bourdeauducq 3b10172810 nac3artiq: get closer to original ARTIQ semantics in demo
Currently crashes the compiler with:
thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value', nac3core/src/codegen/expr.rs:395:58
2021-10-08 23:41:41 +08:00
Sebastien Bourdeauducq 82efb0e720 missing file from previous commit 2021-10-08 23:21:36 +08:00
Sebastien Bourdeauducq d3a21d75fa handle time cursor functions on the Rust side entirely
This is preparation for with sequential/with parallel support.
2021-10-08 23:14:22 +08:00
pca006132 a07674a042 nac3artiq: host object supports typevar 2021-10-08 22:45:08 +08:00
Sebastien Bourdeauducq c5bcd352a5 flake: add hydraJobs 2021-10-08 08:18:42 +08:00
Sebastien Bourdeauducq 79d3c5caae switch to Nix flakes 2021-10-08 00:04:22 +08:00
pca006132 c697e522d3 nac3artiq: #33 demo
The python API is changed a bit to allow running constructor with
@kernel annotation.
2021-10-07 15:58:19 +08:00
pca006132 08947d20c2 nac3artiq: implements #33 2021-10-07 15:57:45 +08:00
pca006132 62673cf608 nac3artiq: add back builtins (fix #53) 2021-10-06 16:46:41 +08:00
pca006132 11144301ca nac3artiq: added simple host value support 2021-10-06 16:07:42 +08:00
ychenfo 4fcb54e463 nac3core: fix #46, better toplevel return type error msg 2021-10-03 18:07:45 +08:00
ychenfo 24b2111c64 nac3core: fix #45 toplevel better error msg for methods/functions 2021-10-03 17:25:28 +08:00
ychenfo f5ce1afe0b fix tests and switch to insta
Use a library called 'insta' to better organize those longer correct test outputs in toplevel tests. 'insta' creates `.snap` files as snapshots of the test output, and will automatically do the diff if the output is different. This makes maintaining test cases with larger outputs a lot easier.

Reviewed-on: M-Labs/nac3#42
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2021-10-03 16:39:12 +08:00
Sebastien Bourdeauducq 915460ecb7 nac3artiq: fix typo 2021-10-03 16:18:15 +08:00
Sebastien Bourdeauducq b2c7f51d57 nac3artiq: guarantee ordering of pinned now stores 2021-10-03 10:00:42 +08:00
Sebastien Bourdeauducq 248d8cbece nac3artiq: handle now-pinning depending on target 2021-10-02 23:40:06 +08:00
Sebastien Bourdeauducq c429a86586 nac3artiq: refactor timeline functions 2021-10-02 23:35:28 +08:00
Sebastien Bourdeauducq c5e731f16d nac3artiq: implement timeline functions 2021-10-02 23:22:46 +08:00
Sebastien Bourdeauducq 0cbe4778d2 nac3standalone: demonstrate scalar conversion functions in mandelbrot 2021-10-02 19:21:59 +08:00
Sebastien Bourdeauducq c93305739d nac3artiq: fix misleading error message 2021-10-02 19:17:33 +08:00
Sebastien Bourdeauducq ba93931758 implement timeline functions for RISC-V (WIP) 2021-10-02 19:05:35 +08:00
Sebastien Bourdeauducq 3dd916b6ac nac3artiq: update unsendable comment 2021-10-02 18:28:44 +08:00
pca006132 8447aa3000 nac3artiq: allows kernel function 2021-10-01 00:02:15 +08:00
pca006132 1d2a32b140 nac3core/toplevel: impl scalar conversion
Implemented scalar conversion functions as builtin functions.
`round` for int64 is now implemented as `round64`.
2021-09-30 23:39:29 +08:00
pca006132 07a9229d52 nac3artiq: implements #36 2021-09-30 22:30:54 +08:00
pca006132 f0fdfe42cb nac3core: better impl of #24 2021-09-30 17:07:48 +08:00
Sebastien Bourdeauducq 928b5bafb5 nac3artiq: add missing symlink 2021-09-29 15:36:30 +08:00
Sebastien Bourdeauducq dceaf42500 nac3artiq: support ISA selection 2021-09-29 15:33:12 +08:00
Sebastien Bourdeauducq bfd041d361 nac3artiq: filter class definitions 2021-09-27 22:25:19 +08:00
Sebastien Bourdeauducq 6141f01180 nac3artiq: parse whole Python module, filter ast 2021-09-27 22:12:25 +08:00
Sebastien Bourdeauducq 8d839db553 typo 2021-09-27 19:12:18 +08:00
Sebastien Bourdeauducq 316db42940 nac3embedded -> nac3artiq, README cleanup 2021-09-27 10:30:54 +08:00
Sebastien Bourdeauducq 64404bba20 syscall -> extern (#21) 2021-09-27 10:13:03 +08:00
pca006132 d4ed76d76e nac3core: implementing #24 2021-09-26 22:17:09 +08:00
pca006132 3c121dfcda nac3core/toplevel/composer: fixes #29 2021-09-25 22:02:19 +08:00
pca006132 693ac7d336 nac3core/toplevel: added personality symbol config 2021-09-25 21:44:00 +08:00
Sebastien Bourdeauducq dd998c8afc nac3embedded: RTIO LED blinking demo 2021-09-25 14:17:11 +08:00