David Mak
fffa0bac27
WIP6 - gen_string returns StructValue
2024-08-12 12:39:19 +08:00
David Mak
64741d47bf
WIP5 - Split new builtins into lateinit_builtins
2024-08-12 12:39:19 +08:00
David Mak
8108a026cc
WIP3
2024-08-12 12:39:19 +08:00
David Mak
27beee17e7
WIP2
2024-08-12 12:39:19 +08:00
David Mak
3cce07fafc
WIP
2024-08-12 12:39:19 +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
4948395ca2
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 14:42:14 +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
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