Commit Graph

231 Commits

Author SHA1 Message Date
4b927fa62f core: reimplement assignment type inference and codegen
- distinguish between setitem and getitem
- allow starred assignment targets, but the assigned value would be a tuple
- allow both [...] and (...) to be target lists
2024-08-05 11:06:40 +08:00
318a675ea6 standalone: Rename -m32 to -i386 2024-07-29 14:58:58 +08:00
32e52ce198 standalone: Revert using uint32_t as slice length
Turns out list and str have always been size_t.
2024-07-29 14:58:29 +08:00
8c5ba37d09 standalone: Add 32-bit execution tests to check_demo.sh 2024-07-26 13:35:40 +08:00
5faeede0e5 Determine size_t using LLVM target machine 2024-07-26 13:35:38 +08:00
3d3c258756 standalone: Remove support for --lli 2024-07-26 13:32:38 +08:00
ed1182cb24 standalone: Update format specifiers for exceptions
Use platform-agnostic identifiers instead.
2024-07-26 13:32:37 +08:00
fd025c1137 standalone: Use uint32_t for cslice length
Matching the expected type of string and list slices.
2024-07-26 13:32:21 +08:00
44487b76ae standalone: interpret_demo.py remove duplicated section 2024-07-22 17:23:35 +08:00
1332f113e8 standalone: fix interpret_demo.py comments 2024-07-22 17:06:14 +08:00
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
1a31a50b8a
standalone: fix __nac3_raise def in demo.c 2024-07-17 21:22:08 +08:00
c80378063a add np_argmin/argmax to interpret_demo environment 2024-07-12 13:27:52 +02:00
45e9360c4d standalone: Add np_argmax and np_argmin tests 2024-07-12 18:19:56 +08:00
f47cdec650 standalone: Fix output format of output_range 2024-07-09 13:55:48 +08:00
d656880e44 standalone: Fix missing implementation for output_range 2024-07-09 13:53:50 +08:00
25d2de67f7 standalone: Add output_range and tests 2024-07-09 04:44:40 +08:00
9238a5e86e standalone: Rename output_str to output_strln and add output_str
output_str is for outputting strings without newline, and the newly
introduced output_strln now has the old behavior of ending with a
newline.
2024-07-09 04:44:40 +08:00
ba32fab374 standalone: Add demos for list arithmetic operators 2024-07-04 16:01:15 +08:00
83154ef8e1 core/llvm_intrinsics: remove llvm.roundeven call from call_float_roundeven 2024-07-03 14:17:47 +08:00
5b11a1dbdd core: support tuple and int32 input for np_empty, np_ones, and more 2024-06-27 14:30:17 +08:00
ca8459dc7b standalone: prettify TopLevelComposer error reporting 2024-06-27 10:15:14 +08:00
5bade81ddb standalone: Add test for multidim array index with one index 2024-06-20 12:50:30 +08:00
07adfb2a18 standalone: Add *.ll to Gitignore list 2024-06-19 18:56:15 +08:00
f00e458f60 add test for class without __init__ 2024-06-19 18:16:54 +08:00
f026b48e2a core: refactor to use TypeVarId and TypeVar 2024-06-13 16:59:10 +08:00
95de0800b4 core/demo: fix typo in .gitignore 2024-06-13 16:05:33 +08:00
3d71c6a850 core/demo: gitignore to ignore *.bc & *.o 2024-06-13 16:00:23 +08:00
23974feae7 meta: Restrict number of allowed lints 2024-06-12 16:10:57 +08:00
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
8168692cc3 apply cargo fmt 2024-06-12 14:45:03 +08:00
53d44b9595 standalone: Add np_array tests 2024-06-11 16:44:36 +08:00
23b2fee4e7 standalone: Add test case for ndarray slicing 2024-06-03 16:40:05 +08:00
520e1adc56 core/builtins: Add np_minimum/np_maximum 2024-05-09 15:01:20 +08:00
73e81259f3 core/builtins: Add np_min/np_max 2024-05-09 15:01:20 +08:00
30c6cffbad core/builtins: Refactored numpy builtins to accept scalar and ndarrays 2024-05-06 15:38:29 +08:00
9566047241 standalone: Fix cbrt never tested 2024-05-06 13:21:54 +08:00
c4dc36ae99 standalone: Add explicit -- for delimiting run args vs NAC3 args 2024-05-06 13:21:54 +08:00
847615fc2f core: Implement numpy.matmul for 2D-2D ndarrays 2024-04-23 10:27:37 +08:00
e0f440040c core/expr: Implement negative indices for ndarray 2024-04-15 12:49:42 +08:00
52c731c312 core: Implement Not/UAdd/USub for booleans
Not sure if this is deliberate or an oversight, but we implement it
anyway for consistency with other Python implementations.
2024-04-12 18:29:58 +08:00
00d1b9be9b core: Fix __inv__ for i8-based boolean operands 2024-04-12 15:35:54 +08:00
a920fe0501 core: Implement elementwise comparison operators 2024-04-03 00:07:33 +08:00
727a1886b3 core: Implement elementwise unary operators 2024-04-03 00:07:33 +08:00
6af13a8261 core: Implement elementwise binary operators
Including immediate variants of these operators.
2024-04-03 00:07:33 +08:00
fd44ee6887 core: Apply clippy suggestions 2024-03-22 15:07:23 +08:00
2edc1de0b6 standalone: Update ndarray.py to output all elements in ndarrays 2024-03-07 14:59:13 +08:00
96b7f29679 core: Implement ndarray.fill 2024-03-07 14:59:13 +08:00
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
8492503af2 core: Update cargo dependencies 2024-02-23 15:41:04 +08:00