lyken
c9c9dae91b
artiq: reimplement get_obj_value to use ndarray with strides
2024-08-26 11:18:24 +08:00
lyken
1dc18cfbd3
artiq: reimplement polymorphic_print for ndarray
2024-08-26 11:18:24 +08:00
lyken
121f45279e
artiq: reimplement reformat_rpc_arg for ndarray
2024-08-26 11:18:24 +08:00
lyken
cf34002179
core/irrt/exceptions: allow irrt to raise exceptions
...
Achieved through defining all the needed Exception ID constants at link
time.
Secondly, since `Exception` is `size_t` dependent, `__nac3_raise()`
takes an opaque pointer to `Exception`.
2024-08-26 09:38:56 +08:00
lyken
2cf64d8608
apply clippy comment changes
2024-08-21 11:21:10 +08:00
lyken
706759adb2
artiq: apply cargo fmt
2024-08-21 11:21:10 +08:00
David Mak
0b074c2cf2
[artiq] symbol_resolver: Set private linkage for constants
2024-08-19 14:41:43 +08:00
David Mak
b1c5c2e1d4
[artiq] Fix RPC of ndarrays to host
2024-08-15 15:41:24 +08:00
David Mak
69320a6cf1
[artiq] Fix LLVM representation of strings
...
Should be `%str` rather than `[N x i8]`.
2024-08-14 09:30:08 +08:00
David Mak
6beff7a268
[artiq] Implement core_log and rtio_log in terms of polymorphic_print
...
Implementation mostly references the original implementation in Python.
2024-08-13 15:19:03 +08:00
David Mak
6ca7aecd4a
[artiq] Add core_log and rtio_log function declarations
2024-08-13 15:19:03 +08:00
David Mak
8fd7216243
[core] toplevel/composer: Add lateinit_builtins
...
This is required for the new core_log and rtio_log functions, which take
a generic type as its parameter. However, in ARTIQ builtins are
initialized using one unifier and then actually used by another unifier.
lateinit_builtins workaround this issue by deferring the initialization
of functions requiring type variables until the actual unifier is ready.
2024-08-13 15:19:03 +08:00
David Mak
4f5e417012
[core] codegen: Add function to get format constants for integers
2024-08-13 15:19:03 +08:00
David Mak
6a64c9d1de
core/typecheck/typedef: Add is_vararg_ctx to TTuple
2024-08-06 11:45:54 +08:00
David Mak
cbf79c5e9c
core/typecheck/typedef: Add is_vararg to FuncArg, ConcreteFuncArg
2024-08-06 11:43:13 +08:00
David Mak
0ba68f6657
core: Set target triple and datalayout for each module
...
Fixes an issue with inconsistent pointer sizes causing crashes.
2024-07-26 13:35:40 +08:00
David Mak
5faeede0e5
Determine size_t using LLVM target machine
2024-07-26 13:35:38 +08:00
David Mak
3db3061d99
artiq/symbol_resolver: Handle type of zero-length lists
2024-07-19 14:42:14 +08:00
David Mak
2194dbddd5
core/type_annotation: Refactor List type to TObj
...
In preparation for operators on lists.
2024-07-04 15:32:18 +08:00
abdul124
b0b804051a
nac3artiq: allow class attribute access without init function
2024-06-25 16:06:33 +08:00
abdul124
134af79fd6
core: add support for class attributes
2024-06-25 16:06:33 +08:00
lyken
06e9d90d57
apply clippy changes
2024-06-21 14:14:01 +08:00
David Mak
d3cd2a8d99
artiq: Add support for generating RPC tag for ndarray
2024-06-19 18:56:16 +08:00
David Mak
202a63274d
artiq: Implement pyty-to-ty conversion
2024-06-19 18:56:15 +08:00
David Mak
76dd5191f5
artiq: Implement Python-to-LLVM conversion of ndarray
2024-06-19 18:56:15 +08:00
David Mak
8d9df0a615
artiq: Fix ndarray class ID
...
We want the class ID of the ndarray class, not its corresponding typing
class.
2024-06-19 18:56:15 +08:00
David Mak
1bc95a7ba6
Add handling for np.bool_ and np.str_
2024-06-19 15:10:47 +08:00
abdul124
ce3e9bf4fe
nac3artiq: add support string attributes in classes
2024-06-17 16:53:51 +08:00
lyken
676412fe6d
apply cargo fmt
2024-06-14 09:46:42 +08:00
lyken
fed1361c6a
core: rename to_var_map to into_var_map
2024-06-13 16:59:10 +08:00
lyken
f026b48e2a
core: refactor to use `TypeVarId` and `TypeVar`
2024-06-13 16:59:10 +08:00
David Mak
23974feae7
meta: Restrict number of allowed lints
2024-06-12 16:10:57 +08:00
David Mak
40a3bded36
meta: Set clippy lints in {main,lib}.rs
...
So that this does not have to be manually passed to the `cargo clippy`
command-line every single time. Also allows incrementally addressing
these lints by removing and fixing them one-by-one.
2024-06-12 16:10:57 +08:00
lyken
fd36f78005
core: refactor `PrimitiveDefinitionId` into enum `PrimDef`
2024-06-12 15:01:01 +08:00
lyken
8168692cc3
apply cargo fmt
2024-06-12 14:45:03 +08:00
David Mak
3a6c53d760
core/toplevel/numpy: Split ndarray type var utilities
2024-04-03 00:07:33 +08:00
David Mak
5ca2dbeec8
core/typedef: Add Type::obj_id to replace get_obj_id
2024-04-02 16:49:10 +08:00
David Mak
4bb0e60981
core: Apply clippy suggestions
2024-04-01 16:46:41 +08:00
David Mak
77de24ef74
core: Use BTreeMap for type variable mapping
...
There have been multiple instances where I had the need to iterate over
type variables, only to discover that the traversal order is arbitrary.
This commit fixes that by adding SortedMapping, which utilizes BTreeMap
internally to guarantee a traversal order. All instances of VarMap are
now refactored to use this to ensure that type variables are iterated in
the order of its variable ID, which should be monotonically incremented
by the unifier.
2024-03-04 23:56:04 +08:00
David Mak
234a6bde2a
core: Use TObj for NDArray
2024-03-01 15:41:55 +08:00
David Mak
c3db6297d9
core: Add primitive definition-id list
...
So that we have a single ground truth for the definition IDs of
primitive types.
2024-03-01 11:29:10 +08:00
David Mak
82fdb02d13
core: Extract LLVM intrinsic functions to their functions
2024-02-23 15:41:06 +08:00
David Mak
49de81ef1e
core: Apply clippy suggestions
2024-02-23 15:41:06 +08:00
David Mak
8492503af2
core: Update cargo dependencies
2024-02-23 15:41:04 +08:00
David Mak
2a922c7480
artiq: Fix source module of NDArray
...
Should be `numpy.typing` instead of `numpy`.
2024-01-17 10:40:08 +08:00
David Mak
c395472094
core: Initial infrastructure for ndarray
2023-12-21 15:39:46 +08:00
David Mak
bd792904f9
core: Add size_t to primitive store
...
Used for ndims in ndarray.
2023-12-21 15:20:31 +08:00
David Mak
b47ac1b89b
core: Minor formatting cleanup
2023-12-15 17:46:44 +08:00
David Mak
a19f1065e3
meta: Refactor to use more let-else bindings
2023-12-12 16:31:14 +08:00
David Mak
32746c37be
core: Refactor to return errors by HashSet
2023-12-12 15:41:59 +08:00