occheung
9573311a0d
nac3artiq: generate buffered object
2022-03-22 13:43:09 +08:00
pca006132
fb8553311c
nac3artiq: remove accidentally added print
2022-03-17 15:13:00 +08:00
pca006132
04e7a7eb4b
nac3artiq: support more exceptions
2022-03-17 15:03:22 +08:00
pca006132
642e3b2bad
nac3core: moved all builtin errors to nac3artiq code
...
This remove the need for hard-coding those definition IDs.
2022-03-17 00:04:49 +08:00
pca006132
e126fef012
nac3artiq: support more builtin errors
2022-03-16 23:42:08 +08:00
ychenfo
79c469301a
basic unsigned integer support
2022-03-08 13:34:02 +08:00
pca006132
294943e303
nac3core: get exception ID from symbol resolver
...
We need to store the exception class somewhere in order to create them
back in the host. Fixes #200
2022-03-05 00:26:35 +08:00
pca006132
d1e172501d
nac3artiq: remove debug messages
2022-02-28 23:10:05 +08:00
pca006132
323d77a455
nac3artiq: improve error message for out of range error
2022-02-28 23:09:14 +08:00
Sebastien Bourdeauducq
a9c73a4915
fix some error strings
2022-02-28 11:10:33 +08:00
Sebastien Bourdeauducq
804d5db27e
nac3artiq: make CompileError importable from Python
2022-02-26 17:29:13 +08:00
Sebastien Bourdeauducq
cbc77dddb0
nac3artiq: raise specific exception on error
2022-02-26 17:17:06 +08:00
pca006132
d3cb5d6e52
Fixed type error messages
2022-02-22 17:22:15 +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
bf52e294ee
nac3artiq: RPC support
2022-02-12 22:50:32 +08:00
ychenfo
0439bf6aef
nac3artiq: fix errors of non-primitive object when running multiple kernels
2022-01-15 04:43:39 +08:00
Sebastien Bourdeauducq
fd4bf12808
fix grammar of some type error messages
2022-01-14 16:56:23 +08:00
ychenfo
9d342d9f0f
nac3artiq: error msg improvement for synthesized __modinit__
2022-01-14 16:28:37 +08:00
Sebastien Bourdeauducq
4a65d82db5
introduce IRRT, implement power
...
based on code by Yijia
M-Labs/nac3#160
2022-01-09 00:57:50 +08:00
ychenfo
88f0da7bdd
add file name to AST node location
2021-12-28 01:28:55 +08:00
pca006132
fa04768a77
redo "nac3core: fix #84 "
...
This reverts commit 86005da8e1
.
2021-12-27 22:56:26 +08:00
Sebastien Bourdeauducq
6162d21a5b
LLVM PGO support
2021-12-26 21:11:14 +08:00
Sebastien Bourdeauducq
86005da8e1
Revert "nac3core: fix #84 "
...
This reverts commit 0902d8adf4
.
2021-12-26 08:35:27 +08:00
pca006132
0902d8adf4
nac3core: fix #84
2021-12-23 15:26:48 +08:00
ychenfo
66320679be
improve error messages
...
#112 , #110 , #108 , #87
Reviewed-on: M-Labs/nac3#145
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2021-12-22 08:52:19 +08:00
ychenfo
91625dd327
update kernel-only attribute annotation
...
Reviewed-on: M-Labs/nac3#127
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2021-12-19 11:04:53 +08:00
pca006132
6d00d4dabb
nac3artiq: cache python data if possible
2021-12-05 20:30:03 +08:00
pca006132
65bc1e5fa4
nac3artiq: handle name_to_pyid in compilation
...
python variables can change between kernel invocations
2021-12-05 13:10:54 +08:00
pca006132
2938eacd16
nac3artiq: supports running multiple kernels
2021-12-05 13:10:54 +08:00
pca006132
c98f367f90
nac3artiq: enables inlining
2021-12-04 17:52:03 +08:00
ychenfo
dfd3548ed2
TypeVar and virtual support in Symbol Resolver ( #99 )
...
Add `TypeVar` and `virtual` support for Symbol Resolver in nac3artiq and nac3standalone
Reviewed-on: M-Labs/nac3#99
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2021-12-01 22:44:53 +08:00
pca006132
b35075245b
nac3artiq: remove debug print
2021-11-27 21:29:57 +08:00
pca006132
f5ec103c82
nac3artiq: kernel invariant support
2021-11-20 21:15:15 +08:00
pca006132
ba08deada6
nac3core: refactor codegen
2021-11-20 19:50:25 +08:00
Sebastien Bourdeauducq
9ae08d6e3d
nac3artiq: add stubs for now-pinning on rv32g ( #97 )
2021-11-13 12:10:55 +08:00
Sebastien Bourdeauducq
978eaf16a4
nac3artiq: support RISC-V with and without FPU. Closes #83
2021-11-11 23:43:50 +08:00
Sebastien Bourdeauducq
612b6768c0
nac3artiq: bail early on non-NAC3 classes
2021-11-11 16:35:40 +08:00
Sebastien Bourdeauducq
c004da85f7
nac3artiq: drop host-only base classes. Closes #80
2021-11-11 16:08:29 +08:00
Sebastien Bourdeauducq
50f1aca1aa
nac3artiq: move module registration list to CPython side
...
In ARTIQ, we cannot create a global NAC3 object because we do not
know the ISA in advance.
2021-11-07 10:29:14 +08:00
Sebastien Bourdeauducq
016cbf2b90
nac3artiq: return bytes in compile_method_to_mem
2021-11-06 14:29:23 +08:00
Sebastien Bourdeauducq
37eae090e5
nac3artiq: fix linker inputs
2021-11-06 14:23:54 +08:00
Sebastien Bourdeauducq
204baabfd2
nac3artiq: add compile_method_to_mem
2021-11-06 14:14:53 +08:00
Sebastien Bourdeauducq
7d66195eae
nac3artiq: embed linker script, put intermediate objects in temp dir
2021-11-06 13:04:00 +08:00
Sebastien Bourdeauducq
d6f0607ff0
nac3artiq: rename class decorator to nac3
2021-11-05 18:08:36 +08:00
Sebastien Bourdeauducq
bf7e2c295a
integrate nac3parser
2021-11-03 17:11:00 +08:00
Sebastien Bourdeauducq
b37cf6de08
nac3artiq: share isa->time_fns map
2021-11-01 00:03:15 +08:00
pca006132
083eacc268
with parallel/sequential support
...
Behavior of parallel and sequential:
Each function call (indirectly, can be inside a sequential block) within a parallel
block will update the end variable to the maximum now_mu in the block.
Each function call directly inside a parallel block will reset the timeline after
execution. A parallel block within a sequential block (or not within any block) will
set the timeline to the max now_mu within the block (and the outer max now_mu will also
be updated).
Implementation: We track the start and end separately.
- If there is a start variable, it indicates that we are directly inside a
parallel block and we have to reset the timeline after every function call.
- If there is a end variable, it indicates that we are (indirectly) inside a
parallel block, and we should update the max end value.
Note: requires testing, it is difficult to inspect the output IR
2021-10-31 23:54:37 +08:00
Sebastien Bourdeauducq
443b95d909
nac3artiq: do not use custom linker script when targeting host
2021-10-31 23:51:50 +08:00
Sebastien Bourdeauducq
8b73a123cc
nac3artiq: support compiling for the host
2021-10-31 23:02:21 +08:00