ddd16738a6
[core] codegen: implement ndarray iterator NDIter
...
Based on 50f960ab: core/ndstrides: implement ndarray iterator NDIter
A necessary utility to iterate through all elements in a possibly
strided 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
e4bd376587
[core] codegen: Implement ContiguousNDArray
...
Fixes compatibility with linalg algorithms. matrix_power is missing due
to the need for indexing support.
2024-12-13 15:23:29 +08:00
44498f22f6
[core] codegen: Implement NDArray functions from a0a1f35b
2024-12-13 15:22:11 +08:00
110416d07a
[core] codegen/irrt: Add IRRT functions for strided-ndarray
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
3cd36fddc3
[core] codegen/types: Add check_struct_type_matches_fields
...
Shorthand for checking if a type is representable by a StructFields
instance.
2024-12-12 11:40:44 +08:00
56a7a9e03d
[core] codegen: Add helper functions for create+call functions
...
Replacement for various FnCall methods from legacy ndstrides
implementation.
2024-12-12 11:30:36 +08:00
574ae40f97
[core] codegen: Add call_memcpy_generic_array
...
Replacement for Instance<Ptr>::copy_from from legacy ndstrides
implementation.
2024-12-12 11:30:36 +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
ad67a99c8f
[core] codegen: Cleanup builtin_fns.rs
...
- Unpack tuples directly in function argument
- Replace Vec parameters with slices
- Replace unwrap-transform with map-unwrap
2024-12-10 12:49:49 +08:00
8e2b50df21
[core] codegen/ndarray: Cleanup
...
- Remove redundant size param
- Add *_fields functions and docs
2024-12-09 13:01:08 +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
d62c6b95fd
[core] codegen/types: Rename StructField::set_from_value
2024-12-09 12:51:50 +08:00
95e29d9997
[core] codegen: Move ndarray type/value as a separate module
2024-12-09 12:51:46 +08:00
536ed2146c
[meta] Remove all mentions of build_int_cast
...
build_int_cast performs signed extension or truncation depending on the
source and target int lengths. This is usually not what we want - We
want zero-extension instead.
Replace all instances of build_int_cast with
build_int_z_extend_or_bit_cast to fix this issue.
2024-12-09 12:51:39 +08:00
d484d44d95
[standalone] linalg: Fix function name in error message
2024-12-09 12:09:57 +08:00
ac978864f2
[meta] Apply clippy suggestions
2024-12-09 12:08:41 +08:00
95254f8464
[meta] Update Cargo dependencies
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
01edd5af67
[meta] Apply rustfmt changes
2024-11-29 15:43:34 +08:00
015714eee1
copy constructor -> clone
2024-11-28 18:52:53 +08:00
71dec251e3
ld/dwarf: remove reader resets
...
DWARF reader never had to reverse. Readers are already copied to achieve this effect.
Plus the position that it reverses to might be questionable.
2024-11-28 18:52:53 +08:00
fce61f7b8c
ld: fix dwarf sections offset calculations
2024-11-28 18:52:53 +08:00
babc081dbd
core/toplevel: update tests
2024-11-27 14:31:57 +08:00
5337dbe23b
core/toplevel: add python-like error messages for class definition
2024-11-27 14:31:57 +08:00
f862c01412
core/toplevel: refactor composer
2024-11-27 14:31:53 +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
5651e00688
flake: add platformdirs artiq dependency
2024-11-22 20:30:30 +08:00
f6745b987f
bump sipyco and artiq used for profiling
2024-11-22 19:43:03 +08:00
e0dedc6580
nac3artiq: support kernels sent by content
2024-11-22 19:38:52 +08:00
28f574282c
[core_derive] Ignore doctest in example
...
Causes linker errors for unknown reasons.
2024-11-22 00:00:05 +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
f7e296da53
[core] irrt: Break IRRT into several impl files
...
Each IRRT file is now mapped to one Rust file.
2024-11-21 14:27:00 +08:00
b58c99369e
[core] irrt: Update some IRRT implementation
...
- Change CSlice to use `void*` for better pointer compatibility
- Only include impl *.hpp files in irrt.cpp
- Refactor typedef to using declaration
- Add missing ``// namespace`
2024-11-21 14:26:58 +08:00
1a535db558
[core] codegen: Add dtype to NDArrayType
...
We won't have this once NDArray is refactored to strided impl.
2024-11-20 15:35:57 +08:00
1ba2e287a6
[core] codegen: Add Self::llvm_type to all type abstractions
2024-11-20 15:35:57 +08:00
f95f979ad3
core/irrt: fix exception.hpp C++ castings
2024-11-20 15:35:57 +08:00
48e2148c0f
core/toplevel/helper: add {extract,create}_ndims
2024-11-20 15:35:57 +08:00
88e57f7120
[core_derive] Initial implementation
2024-11-20 15:35:55 +08:00
d7633c42bc
[core] codegen/types: Implement StructField{,s}
...
Loosely based on FieldTraversal by lyken.
2024-11-19 13:46:25 +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