1752 Commits

Author SHA1 Message Date
ea96116941 README: nac3ld -> nac3binutils 2026-02-01 05:12:04 +08:00
f6108313e6 README: update artiq link 2026-02-01 04:26:49 +08:00
ecb7256e42 [artiq] Fix for some modules not having __file__ attribute 2025-09-12 09:37:54 +08:00
5b2bb5b432 [artiq] Add test case 2025-09-11 11:05:28 +08:00
39ba8417b9 [core] toplevel: Rewrite resolution logic for module-qualified class names 2025-09-11 11:05:28 +08:00
91e5a31f72 [artiq] Register imported Python modules 2025-09-11 11:05:28 +08:00
3b6fbba0f7 update dependencies 2025-09-10 09:50:10 +08:00
e2384130ae flake: update copy of sources used for PGO 2025-09-10 09:34:29 +08:00
12e51e95be [core] toplevel/composer: Elaborate error message and give more context 2025-09-08 18:45:18 +08:00
425fdf81a7 [core] Minor formatting fixes
For some reason rustfmt doesn't do anything for this file.
2025-09-08 18:44:33 +08:00
cac98e1009 [meta] Warn on clippy::enum_glob_use 2025-09-08 18:44:33 +08:00
050269b94d [artiq] Extract ID fields by module 2025-09-08 18:44:33 +08:00
11fbbdb173 [artiq] Add missing staticmethod field to artiq_builtins 2025-09-08 18:44:33 +08:00
4a946c5d66 [artiq] Keep Generic[T] in base class declaration 2025-09-08 18:44:18 +08:00
50f35d3073 [core] toplevel: Use has_generic_ann to determine Generic[T] 2025-09-08 18:36:44 +08:00
4e778095ed [core] toplevel: Add has_generic_ann_fn to ComposerConfig 2025-09-08 18:36:38 +08:00
6d48b0899e [standalone] Refactor ndarray output functions
- Use `for ... in ndarray` in output functions - Add test case for
range(len(ndarray))
2025-08-29 12:34:35 +08:00
1fee1194db [core] codegen: Implement support for iterating over ndarrays 2025-08-29 12:34:35 +08:00
22f4ecb3c2 [core] type_inferencer: Implement type inference for ndarray iteration 2025-08-29 12:34:35 +08:00
506fa61eea [core] toplevel/numpy: Slightly optimize unpacking ndarray tvars 2025-08-29 12:34:35 +08:00
91f9f7dc65 [core] remove unnecessary rc 2025-08-22 17:46:04 +08:00
c1f7efbc60 [core] set function signature of call by inference 2025-08-22 17:46:00 +08:00
34554f31b6 update MSYS2 packages 2025-08-21 09:05:35 +08:00
621b8f65b9 typecheck: partly revert TCall simplification
This partly reverts commit 797a2dbbad.
2025-08-20 21:44:24 +08:00
e8a56800f4 [meta] Fix warnings and apply clippy suggestions 2025-08-20 12:31:34 +08:00
7b26dacc6d [meta] Update versions in Cargo.toml 2025-08-20 12:31:34 +08:00
5990bfb50a update dependencies 2025-08-20 12:08:47 +08:00
797a2dbbad typecheck: simplify TCall and fix wrong kwarg type 2025-08-20 12:02:48 +08:00
ac6d7b7496 codegen: remove useless object value 2025-08-20 11:18:47 +08:00
ad668122b3 nac3ld: insert debug sections 2025-08-14 11:38:56 +08:00
98aab1c0d9 nac3ld: verify allocated size for dynamic relocs 2025-08-14 11:38:56 +08:00
cb4df67008 nac3ld: reorder target section index calculations 2025-08-14 11:38:56 +08:00
f70456a805 nac3ld: update symbol address resolution
Use loaded address instead of image offset.
.debug_* sections make use of this mechanism to load zeros, since .debug sections are not allocated space.
Existing symbol resolutions are not affected, since sh_addr == sh_offset for all allocated sections by design.
2025-08-14 11:38:56 +08:00
32cffc8864 further update cargo dependencies 2025-08-11 23:15:54 +08:00
ef113d197a update dependencies 2025-08-11 23:04:13 +08:00
6cc230b3f5 [core] Minor doc clarification on __codegen_context_ref 2025-08-11 14:31:52 +08:00
893e2a1e5b [meta] Run cargo fmt/clippy 2025-08-11 13:02:43 +08:00
768560f893 [ld] Use addend in indirect reloc 2025-08-07 20:59:59 +08:00
16c65dca89 refactor: fixup ModuleContext types 2025-08-07 16:05:37 +08:00
7235012a0d flake: update copy of sources used for PGO 2025-08-06 11:20:40 +08:00
099971da65 update dependencies 2025-08-01 13:32:01 +08:00
bd7cf9f4ab tests: make doctests work 2025-08-01 11:47:02 +08:00
1656770478 tests: fix missing target init 2025-07-31 16:15:56 +08:00
aacfba8c57 refactor: separate CoreContext out of CodeGenContext 2025-07-31 11:17:55 +08:00
5fa4457aee update ARTIQ source used for PGO 2025-07-23 20:28:41 +08:00
e135efa58e update dependencies 2025-07-23 20:26:42 +08:00
3831f071d5 [artiq] use the right incoming bb for rpc array loop 2025-07-23 13:48:06 +08:00
7487b42db9 always run a pass to strip dead IRRT functions 2025-07-22 18:06:48 +08:00
6e627cc5f6 add staticmethod support
Implementing static methods in nac3 using the `@staticmethod` decorator.

Fixes #591

Reviewed-on: M-Labs/nac3#639
Co-authored-by: Oliver Archer <oa@m-labs.hk>
Co-committed-by: Oliver Archer <oa@m-labs.hk>
2025-07-21 12:47:27 +08:00
f87567b117 [artiq] Fix incorrect stackrestore causing corruption of some returned types (#653)
Fix the check for the type of a value returned by an RPC function. Previous to this a simple `is_pointer_type()` check was being used, which caused `stackrestore` to be called in too many instances. This caused UB, such as the corruption of a list returned in a tuple, as raised in issue #577 due to the tuple container not being a pointer type. To fix this, the datatype is now recursively checked to ensure that no part of it may have required further allocation, in which case the stack should not be restored.

Fixes #577.

Reviewed-on: M-Labs/nac3#653
Co-authored-by: Oliver Archer <oa@m-labs.hk>
Co-committed-by: Oliver Archer <oa@m-labs.hk>
2025-07-18 16:57:03 +08:00