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
4efdd17513
core: Add missing From implementations for LLVM wrapper classes
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
Sebastien Bourdeauducq
e1dbe2526a
flake: switch to nixpkgs unstable for newer rustc
2024-02-20 15:46:51 +08:00
Sebastien Bourdeauducq
f37de381ce
update dependencies
2024-02-20 13:33:20 +08:00
Sebastien Bourdeauducq
4452c8986a
update ARTIQ version used for PGO profiling
2024-02-20 13:29:00 +08:00
David Mak
22e831cb76
core: Add test for indexing into ndarray
2024-02-19 17:13:10 +08:00
David Mak
cc538d221a
core: Implement codegen for indexing into ndarray
2024-02-19 17:13:09 +08:00
David Mak
0d5c53e60c
core: Implement type inference for indexing into ndarray
2024-02-19 17:13:09 +08:00
David Mak
976a9512c1
core: Add const variants to NDArray element getters
2024-02-19 16:56:21 +08:00
David Mak
1eacaf9afa
core: Fix IRRT argument order to ndarray_flatten_index
2024-02-19 16:37:13 +08:00
David Mak
8c7e44098a
core: Fix IRRT implementation of ndarray_flatten_index
2024-02-19 16:37:13 +08:00
David Mak
282a3e1911
core: Fix typo in error message
2024-02-14 16:26:13 +08:00
David Mak
5cecb2bb74
core: Fix Literal use in variable type annotation
2024-02-06 18:16:14 +08:00
David Mak
1963c30744
core: Use Display output for locations
2024-02-06 18:11:51 +08:00
David Mak
27011f385b
core: Add location to non-primitive value return error
2024-02-02 12:49:21 +08:00
David Mak
d6302b6ec8
core: Allow tuple of primitives to be returned
2024-02-02 12:48:52 +08:00
David Mak
fef4b2a5ce
standalone: Disable tests requiring return of non-primitive values
2024-01-29 12:49:50 +08:00
David Mak
b3736c3e99
core: Disallow returning of non-primitive values
...
Non-primitive values are represented by an `alloca`-ed value in the
function body, and when the pointer is returned from the function, the
`alloca`-ed object is deallocated on the stack.
Related to #54 .
2024-01-29 12:49:24 +08:00
Sebastien Bourdeauducq
e328e44c9a
update MSYS2
2024-01-26 15:55:45 +08:00
Sebastien Bourdeauducq
9e4e90f8a0
update dependencies
2024-01-26 15:52:48 +08:00
David Mak
8470915809
core: Add NDArrayValue and helper functions
2024-01-25 15:51:39 +08:00
David Mak
148900302e
core: Add RangeValue and helper functions
2024-01-25 15:51:39 +08:00
David Mak
5ee08b585f
core: Add ListValue and helper functions
2024-01-25 15:51:39 +08:00
David Mak
f1581299fc
core: Minor changes to IRRT
...
Add missing documentation, remove redundant lifetime variables, and fix
typos.
2024-01-25 15:50:53 +08:00
David Mak
af95ba5012
standalone: Add debug flag to run_demo.sh
...
Allows running demos using the debug build instead of the (default)
release build.
2024-01-25 15:50:53 +08:00
David Mak
9c9756be33
standalone: Use size_t in demo.c
2024-01-25 15:50:53 +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
e3e2c36ef4
core: Mark TNDArray and TLiteral as unimplemented in tests
2024-01-17 09:58:14 +08:00
David Mak
4f9a0110c4
meta: Update insta snapshots
2024-01-17 09:49:50 +08:00
David Mak
12c0eed0a3
core: Fix compilation of tests
2024-01-17 09:49:49 +08:00
David Mak
c679474f5c
standalone: Fix redefinition of ndarray consumer functions
2024-01-17 09:38:13 +08:00
Sébastien Bourdeauducq
ab3fa05996
demo: use portable format strings
2024-01-10 18:35:35 +08:00
David Mak
140f8f8a08
core: Implement most ndarray-creation functions
2023-12-22 16:29:55 +08:00
David Mak
27fcf8926e
core: Implement ndarray constructor and numpy.empty
2023-12-22 16:29:54 +08:00
David Mak
afa7d9b100
core: Implement helper for creation of generic ndarray
2023-12-21 15:39:49 +08:00
David Mak
c395472094
core: Initial infrastructure for ndarray
2023-12-21 15:39:46 +08:00
David Mak
03870f222d
core: Extract special method handling in type inferencer
...
To prepare for more special handling with methods.
2023-12-21 15:38:26 +08:00
David Mak
e435b25756
core: Allow implicit promotions of integral literals
...
It should not matter, since it is the value of the literal that matters
with respect to the const generic variable.
2023-12-21 15:21:08 +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
1c3a823670
core: Do not discard value names for IRRT
2023-12-20 15:16:02 +08:00
David Mak
f01d833d48
standalone: Add missing parenthesis
2023-12-20 15:15:47 +08:00
David Mak
9d64e606f4
core: Reject multiple literal bounds
...
This is currently broken due to how we handle function calls in the
unifier.
2023-12-18 10:04:25 +08:00
David Mak
6dccb343bb
Revert "core: Do not keep unification result for function arguments"
...
This reverts commit f09f3c27a5
.
2023-12-18 10:01:23 +08:00
Sebastien Bourdeauducq
d47534e2ad
interpret_demo: add typing.Literal
2023-12-18 08:50:49 +08:00
David Mak
8886964776
core: Remove redundant argument in type annotation parsing
2023-12-16 18:40:48 +08:00
David Mak
f09f3c27a5
core: Do not keep unification result for function arguments
...
For some reason, when unifying a function call parameter with an
argument, subsequent calls to the same function will only accept the
type of the substituted argument.
This affect snippets like:
```
def make1() -> C[Literal[1]]:
return ...
def make2() -> C[Literal[2]]:
return ...
def consume(instance: C[Literal[1, 2]]):
pass
consume(make1())
consume(make2())
```
The last statement will result in a compiler error, as the parameter of
consume is replaced with C[Literal[1]].
We fix this by getting a snapshot before performing unification, and
restoring the snapshot after unification succeeds.
2023-12-16 18:40:48 +08:00