6265d53ad5
[artiq] Fix intermittent class resolution failures
...
In the past, modules (and therefore its members) are not added or
analyzed in order of appearance, as it is stored in a HashMap with the
PythonId as its key.
While this never posed an issue in the past, the refactoring performed
in #535 assumed that the classes *are* ordered by appearance, causing
the bug to manifest. Furthermore, this bug will only manifest
iff a base class has a PythonId greater than the derived class,
explaining why the bug only occurs on occasion.
Fix this by using an IndexMap, which preserves the order of insertion
while also performing deduplication.
2025-02-11 17:02:57 +08:00
36d502dc31
[meta] Apply clippy suggestions
2025-02-11 16:52:28 +08:00
715dc71396
nac3artiq: acquire special python identifiers
2025-02-10 16:42:49 +08:00
a078481cd2
[meta] Minor simplification for PrimStore extraction
2025-02-10 11:26:45 +08:00
f52ba9f151
[core] codegen/irrt: Refactor IRRT to use more create/infer fns
2025-02-10 10:56:24 +08:00
68da9b0ecf
[core] codegen: Implement StructProxy on existing proxies
2025-02-03 11:51:57 +08:00
b521bc0c82
[core] codegen: Add Proxy{Type,Value}::as_abi_{type,value}
...
Needed for PtrToOrBasic{Type,Value}.
2025-02-03 11:51:57 +08:00
87a637b448
[core] codegen: Refactor Proxy{Type,Value} for StructProxy{Type,Value}
2025-02-03 11:51:57 +08:00
37df08b803
[meta] Update dependencies
2025-02-03 11:51:57 +08:00
f817d3347b
[artiq] cleanup module functionality tests
2025-01-20 10:24:08 +08:00
2d275949b8
move tests from artiq to standalone
2025-01-17 13:10:35 +08:00
2783834cb1
nac3artiq/demo: merge EmbeddingMap into min_artiq
2025-01-17 12:45:51 +08:00
879b063968
[artiq] add tests for module support
2025-01-16 12:42:13 +08:00
5fdbc34b43
[core] implement codegen for modules
2025-01-16 12:40:56 +08:00
32f24261f2
[artiq] add global variables to modules
2025-01-16 12:40:14 +08:00
f15a64cc1b
[artiq] register modules
2025-01-16 11:13:04 +08:00
7fac801936
[artiq] add module primitive type
2025-01-16 11:13:04 +08:00
febfd1241d
[core] add module type
2025-01-16 11:13:04 +08:00
8e614d83de
[core] codegen: Add ProxyType::new overloads and refactor to use them
2025-01-15 13:23:19 +08:00
bd66fe48d8
[core] codegen: Refactor to use CodeGenContext::get_size_type
...
Simplifies a lot of API usage.
2025-01-15 13:23:19 +08:00
c59fd286ff
[artiq] Move get_llvm_*
to Isa, use TargetMachine
to infer size_t
2025-01-15 13:23:19 +08:00
d1dcfa19ff
CodeGenerator: Add with_target_machine factory function
...
Allows creating CodeGenerator with the LLVM target machine to infer the
expected type for size_t.
2025-01-13 14:55:33 +08:00
8baf111734
[meta] Apply clippy suggestions
2025-01-06 17:11:31 +08:00
eaaa194a87
[artiq] symbol_resolver: Cast ndarray.{shape,strides} globals to usize*
...
This is needed as ndarray.{shapes,strides} are ArrayValues, and so a GEP
operation is required to convert them into pointers to their first
elements.
2025-01-06 16:53:33 +08:00
352c7c880b
[artiq] symbol_resolver: Fix incorrect global type for ndarray.strides
2025-01-06 16:53:33 +08:00
3c5e247195
[artiq] symbol_resolver: Use TargetData to get size of dtype
...
dtype.size_of() may not return a constant value.
2025-01-06 16:53:33 +08:00
4e21def1a0
[artiq] symbol_resolver: Add missing promotion for host compilation
...
Shape tuple is always in i32, so a zero-extension to i64 is
necessary when assigning the shape tuple into the shape field of the
ndarray.
2025-01-06 16:53:33 +08:00
d9c180ed13
[artiq] symbol_resolver: Fix support for np.bool_ -> bool decay
2025-01-06 16:53:33 +08:00
12fddc3533
[core] codegen/ndarray: Make ndims non-optional
...
Now that everything is ported to use strided impl, dynamic-ndim ndarray
instances do not exist anymore.
2025-01-03 15:43:08 +08:00
8b3429d62a
[artiq] Reimplement get_obj_value for strided ndarray
...
Based on 7ef93472: artiq: reimplement get_obj_value to use ndarray with
strides
2024-12-13 15:23:31 +08:00
f4c5038b95
[artiq] codegen: Reimplement polymorphic_print for strided ndarray
...
Based on 2a6ee503: artiq: reimplement polymorphic_print for ndarray
2024-12-13 15:23:31 +08:00
44c49dc102
[artiq] codegen: Reimplement polymorphic_print for strided ndarray
...
Based on 2a6ee503: artiq: reimplement polymorphic_print for ndarray
2024-12-13 15:23:31 +08:00
44498f22f6
[core] codegen: Implement NDArray functions from a0a1f35b
2024-12-13 15:22:11 +08:00
08a7d01a13
[core] Add itemsize and strides to NDArray struct
...
Temporarily disable linalg ndarray tests as they are not ported to work
with strided-ndarray.
2024-12-13 15:22:09 +08:00
aa293b6bea
[core] codegen: Add type_aligned_alloca
2024-12-12 11:30:35 +08:00
eb4b881690
[core] Expose {types,values}::ndarray modules
...
Allows better encapsulation of members in these modules rather than
allowing them to leak into types/values mod.
2024-12-12 11:30:14 +08:00
3d0a1d281c
[core] Expose irrt::ndarray
2024-12-10 12:49:49 +08:00
06092ad29b
[core] Move alloca and map_value of ProxyType to implementations
...
These functions may not be invokable by the same set of parameters as
some classes has associated states.
2024-12-09 12:51:50 +08:00
ac978864f2
[meta] Apply clippy suggestions
2024-12-09 12:08:41 +08:00
964945d244
string_store: update embedding map after compilation
2024-12-03 16:45:46 +08:00
ae09a0d444
exceptions: preallocate in NAC3 instead
2024-12-03 16:45:05 +08:00
0c9705f5f1
[meta] Apply clippy changes
2024-11-25 16:05:12 +08:00
5f940f86d9
[artiq] Fix obtaining ndarray struct from NDArrayType
2024-11-25 15:01:39 +08:00
e0dedc6580
nac3artiq: support kernels sent by content
2024-11-22 19:38:52 +08:00
144f0922db
[core] coregen/types: Implement StructFields for NDArray
...
Also rename some fields to better align with their naming in numpy.
2024-11-21 14:27:00 +08:00
c58ce9c3a9
[core] codegen/types: Implement NDArray in terms of i8*
...
Better aligns with the future implementation of ndstrides.
2024-11-21 14:27:00 +08:00
a4f53b6e6b
[core] codegen: Refactor ProxyType and ProxyValue
...
Accepts generator+context object for generic type checking. Also
implements more default trait impl for easier delegation.
2024-11-19 13:46:25 +08:00
9d9ead211e
[core] Move Proxies to their own modules
2024-11-19 13:46:23 +08:00
26a1b85206
[core] codegen/classes: Remove Underlying type
...
This is confusing and we want a better abstraction than this.
2024-11-19 13:45:55 +08:00
2822074b2d
[meta] Cleanup from upgrading Rust version
...
- Remove rust_2024_edition warnings, since it wouldn't be released for
another 3 months
- Fix new clippy warnings
2024-11-19 13:43:57 +08:00