Commit Graph

8052 Commits

Author SHA1 Message Date
Sebastien Bourdeauducq 7b56a72da0 Merge branch 'master' into nac3 2022-02-14 16:38:09 +08:00
Sebastien Bourdeauducq 65eab31f23 simplify board package format and artiq_flash 2022-02-14 15:54:17 +08:00
Sebastien Bourdeauducq 6dfc854673 flake: install artiq-comtools 2022-02-13 17:15:25 +08:00
Sebastien Bourdeauducq ec6c6dd988 add comments about preallocate_runtime_exception_names/EXCEPTION_ID_LOOKUP syncing 2022-02-13 13:48:05 +08:00
Sebastien Bourdeauducq 9f620491a9 coredevice: fix exception return handling 2022-02-13 13:32:50 +08:00
Sebastien Bourdeauducq 8e1ac8b844 Revert "core: remove legacy synthesized filename"
This reverts commit 92c1bc2149.
2022-02-13 13:32:20 +08:00
Sebastien Bourdeauducq 8aa8647ba8 coredevice: use NAC3 exception support 2022-02-13 12:51:23 +08:00
Sebastien Bourdeauducq 207ff918c7 coredevice: define ValueError locally
work around M-Labs/nac3#189
2022-02-13 12:50:22 +08:00
Sebastien Bourdeauducq e8e1ccd4f1 coredevice/exceptions: port to NAC3 2022-02-13 12:49:09 +08:00
Sebastien Bourdeauducq 2616e1928d ttl: fix type error 2022-02-13 12:47:53 +08:00
Sebastien Bourdeauducq 4cd47fa935 update NAC3 2022-02-13 12:47:37 +08:00
Sebastien Bourdeauducq 92c1bc2149 core: remove legacy synthesized filename 2022-02-13 11:00:23 +08:00
pca006132 f2f2e12b91 language: implemented embedding map and exception 2022-02-13 10:59:18 +08:00
Sebastien Bourdeauducq 5a8928fbf3 flake: set pythonparser version 2022-02-12 17:48:35 +08:00
Sebastien Bourdeauducq b3b73948a2 flake: update dependencies 2022-02-12 11:04:41 +08:00
Sebastien Bourdeauducq 8433cc6731 flake: use sipyco flake 2022-02-12 10:59:10 +08:00
Sebastien Bourdeauducq 0649e69d94 flake: cleanup 2022-02-12 10:25:24 +08:00
Sebastien Bourdeauducq bbfa926fa6 flake: add documentation outputs 2022-02-11 14:36:18 +08:00
Sebastien Bourdeauducq 9e37fb95d6 manual: use recommended contents caption 2022-02-11 14:25:10 +08:00
Sebastien Bourdeauducq 034a0fdb35 flake: install recommended wavedrom-cli. Closes #1845 2022-02-11 14:24:41 +08:00
Sebastien Bourdeauducq 0e178e40ac RELEASE_NOTES: fix formatting 2022-02-11 14:23:56 +08:00
Sebastien Bourdeauducq a0070d4396 flake: add docs dependencies 2022-02-09 10:53:52 +08:00
Sebastien Bourdeauducq 03a367f565 flake: export more packages 2022-02-09 10:41:30 +08:00
Sebastien Bourdeauducq b893d97d7b afws_client: add login successful message 2022-02-08 21:52:48 +08:00
Sebastien Bourdeauducq b6f5ba8b5b afws_client: improve error message when output already exists 2022-02-08 21:26:12 +08:00
Sebastien Bourdeauducq cc69482dad afws: nix requires full Git commit hash 2022-02-08 21:05:39 +08:00
Sebastien Bourdeauducq 833acb6925 add AFWS client 2022-02-07 14:28:00 +08:00
occheung d5eec652ee tester: specify att with dB 2022-02-07 14:22:52 +08:00
occheung a74196aa27 mirny: allow set attenuation with dB 2022-02-07 14:22:52 +08:00
Steve Fan 798a412c6f
comm_moninj: set keepalive for socket (#1843) 2022-02-04 13:51:19 +08:00
David Nadlinger e45cb217be firmware: Explicitly use wrapping integer math in PRNGs
Patch by Hannah McLaughlin; apparently, the overflow actually
doesn't get checked/reported without `opt-level = 2` and
`lto = "thin"`.
2022-02-03 23:57:17 +00:00
Sebastien Bourdeauducq 8866ab301a flake: update dependencies 2022-02-02 16:39:49 +08:00
Sebastien Bourdeauducq 3cddb14174 flake: break artiq false dependencies 2022-02-02 16:33:17 +08:00
Sebastien Bourdeauducq 245fe6e9ea flake: remove non-HITL board packages
Those can be built externally by calling makeArtiqBoardPackage directly.
2022-02-02 16:04:00 +08:00
Sebastien Bourdeauducq ef25640937 compiler: fix noreturn attribute on __artiq_resume 2022-02-01 19:01:40 +08:00
Sebastien Bourdeauducq dd3279e506 flake: add jsonschema to makeArtiqBoardPackage 2022-01-30 19:38:56 +08:00
Sebastien Bourdeauducq afb98a1903 flake: export makeArtiqBoardPackage 2022-01-30 19:31:20 +08:00
Steve Fan 34008b7a21
Backport of "fixes alignment and size problem" from artiq-zynq (#1841) 2022-01-28 20:49:55 +08:00
pca006132 93328ad8ee compiler: only allow constant exception messages
Otherwise, the exception message might be allocated on a stack, and will
become a dangling pointer when the exception is raised.
This will break some code that constructs exceptions with a function by
passing the message as a parameter because we cannot know if the parameter
is a constant. A way to mitigate this would be to defer this check to
LLVM IR codegen stage, and do inlining first for those exception
allocation functions, but I am not sure if we will guarantee inlining
for certain functions, and whether this is really needed.
2022-01-28 09:01:39 +08:00
Steve Fan 234a82aaa9
dashboard: prioritize min as part of default value resolution (#1839) 2022-01-27 17:45:09 +08:00
Sebastien Bourdeauducq ee511758ce fix typo 2022-01-26 07:51:35 +08:00
Sebastien Bourdeauducq e6c18364ae flake: consistent version string 2022-01-26 07:51:02 +08:00
Sebastien Bourdeauducq ceceabbaf0 Merge branch 'master' into nac3 2022-01-26 07:25:20 +08:00
Sebastien Bourdeauducq c8ec2b0d7f flake: update dependencies 2022-01-26 07:23:57 +08:00
pca006132 9d43762695 test: fixed lit tests
Note that because we changed exception representation from using string
names as exception identifier into using integer IDs, we need to
initialize the embedding map in order to allocate the integer IDs. Also,
we can no longer print the exception names and messages from the kernel,
we will need the host to map exception IDs to names, and may need the
host to map string IDs to actual strings (messages can be static strings
in the firmware, or strings stored in the host only).

We now check for exception IDs for lit tests, which are fixed because we
preallocated all builtin exceptions.
2022-01-26 07:16:54 +08:00
pca006132 4132c450a5 firmware: runtime changes for exception
Ported from:
M-Labs/artiq-zynq#162

This includes new API for exception handling, some refactoring to avoid
code duplication for exception structures, and modified protocols to
send nested exceptions and avoid string allocation.
2022-01-26 07:16:54 +08:00
pca006132 536b3e0c26 test: added test case for nested exceptions and try 2022-01-26 07:16:54 +08:00
pca006132 ba34700798 coredevice: report nested exceptions 2022-01-26 07:16:54 +08:00
pca006132 6ec003c1c9 compiler: fixed dead code eliminator
Instead of removing basic blocks with no predecessor, we will now mark
and remove all blocks that are unreachable from the entry block. This
can handle loops that are dead code. This is needed as we will now
generate more complicated code for exception handling which the old dead
code eliminator failed to handle.
2022-01-26 07:16:54 +08:00
pca006132 da4ff44377 compiler: fixed try codegen and allocate exceptions
Exceptions are now allocated in the runtime when we raise the exception,
and destroyed when we exit the catch block. Nested exception and try
block is now supported, and should behave the same as in CPython.
Exceptions raised in except blocks will now unwind through finally
blocks, matching the behavior in CPython. Reraise will now preserve
backtrace.

Phi block LLVM IR generation is modified to handle landingpads, which
one ARTIQ IR will map to multiple LLVM IR.
2022-01-26 07:16:54 +08:00