David Mak
3a64b0cf07
core/toplevel/type_annotation: Add handling for mismatching class def
...
Primitive types only contain fields in its Type and not its TopLevelDef.
This causes primitive object types to lack some fields.
2024-07-19 13:41:42 +08:00
David Mak
2cdb057d20
artiq/symbol_resolver: Handle type of zero-length lists
2024-07-19 13:41:42 +08:00
David Mak
8f95c707d7
artiq/symbol_resolver: Determine global array type by init-val type
2024-07-19 13:41:42 +08:00
David Mak
6c1d8ac001
core: Add compile-time feature to disable escape analysis
2024-07-19 13:41:41 +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
82cc693b11
meta: Update dependencies
2024-06-03 16:40:02 +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
David Mak
beee3e1f7e
artiq: Pass artiq builtins to NAC3 constructor
2023-12-12 11:28:03 +08:00
David Mak
95d0c3c93c
artiq: Rename const_generic_dummy to const_generic_marker
2023-12-12 11:23:51 +08:00
David Mak
bd3d67f3d6
artiq: Apply clippy pedantic changes
2023-12-11 15:16:23 +08:00
David Mak
02933753ca
core: Apply clippy pedantic changes
2023-12-11 15:16:23 +08:00
David Mak
a1f244834f
meta: Bringup some documentation
2023-12-11 15:16:23 +08:00
David Mak
d304afd333
meta: Apply clippy suggested changes
2023-12-11 15:16:23 +08:00
David Mak
ef04696b02
meta: Lift return out of conditional statement
2023-12-11 15:16:23 +08:00
David Mak
fd9f66b8d9
meta: Remove redundant casts and brackets
2023-12-11 15:16:23 +08:00
David Mak
5182453bd9
meta: Remove redundant path prefixes
2023-12-11 15:16:23 +08:00
David Mak
983f080ea7
artiq: Implement handling for const generic variables
2023-12-08 18:02:14 +08:00
David Mak
c93ad152d7
core: Codegen for ellipsis expression as NotImplemented
...
A lot of refactoring was performed, specifically with relaxing
expression codegen to return Option in case where ellipsis are used
within a subexpression.
2023-12-08 18:00:51 +08:00
David Mak
c2ab6b58ff
artiq: Implement `with legacy_parallel` block
2023-11-04 13:42:44 +08:00
David Mak
0a84f7ac31
Add CodeGenerator::gen_block and refactor to use it
2023-11-04 13:42:44 +08:00