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
bd792904f9
core: Add size_t to primitive store
...
Used for ndims in ndarray.
2023-12-21 15:20:31 +08:00
8886964776
core: Remove redundant argument in type annotation parsing
2023-12-16 18:40:48 +08:00
c7735d935b
standalone: Output id of undefined identifier
2023-12-16 18:40:48 +08:00
a19f1065e3
meta: Refactor to use more let-else bindings
2023-12-12 16:31:14 +08:00
32746c37be
core: Refactor to return errors by HashSet
2023-12-12 15:41:59 +08:00
ddfb532b80
standalone: Apply clippy pedantic changes
2023-12-11 15:16:23 +08:00
02933753ca
core: Apply clippy pedantic changes
2023-12-11 15:16:23 +08:00
d304afd333
meta: Apply clippy suggested changes
2023-12-11 15:16:23 +08:00
031e660f18
core: Initial implementation for const generics
2023-12-08 18:02:11 +08:00
68b97347b1
core: Infer builtins name list using builtin declaration list
2023-12-08 17:29:34 +08:00
adadf56e2b
nac3standalone: generate PIC
2023-12-04 19:09:50 +08:00
120f8da5c7
fix compilation warnings
2023-11-26 09:09:24 +08:00
7fc2a30c14
Force single-threaded compilation if LLVM is not thread-safe
2023-10-16 15:55:10 +08:00
950f431483
standalone: Update help text for --emit-llvm
2023-10-16 15:52:51 +08:00
48eb64403f
standalone: Treat -T0 as using all available threads
2023-10-13 14:57:16 +08:00
2c44b58bb8
standalone: Require use of -T
for specifying thread count
2023-10-13 14:36:34 +08:00
279376a373
standalone: Emit IRRT IR
2023-09-30 09:31:18 +08:00
2a38d5160e
meta: Respect opt flags when performing whole-module optimization
2023-09-28 19:58:54 +08:00
ab2360d7a0
core: Remove emit_llvm from CodeGenLLVMOptions
...
We instead output an LLVM bitcode file when the option is specified on
the command-line.
2023-09-22 17:16:29 +08:00
f59d45805f
standalone: Add command line flags for target properties
...
For testing codegen for different platforms on the host system.
2023-09-18 11:35:20 +08:00
048fcb0a69
core: Switch to LLVM New Pass Manager
2023-09-18 11:35:15 +08:00
676d07657a
core: Add target field to CodeGenLLVMOptions
...
For specifying the target machine options when optimizing and linking.
This field is currently unused but will be required in a future
commit.
2023-09-18 09:46:24 +08:00
474f9050ce
standalone: Expose flags in command-line
2023-09-12 16:20:49 +08:00
3993a5cf3f
core: Add LLVM options to WorkerRegistry
2023-09-12 10:57:05 +08:00
e4940247f3
standalone: Implement command-line parser using clap
...
In preparation for adding more command-line options.
2023-09-12 10:08:34 +08:00
ebd25af38b
nac3standalone: allow classes without explicit init ( #221 )
...
Reviewed-on: #304
Co-authored-by: z78078 <cc@m-labs.hk>
Co-committed-by: z78078 <cc@m-labs.hk>
2022-07-07 10:36:25 +08:00
a308d24caa
nac3standalone: cleanup
2022-04-18 16:02:48 +08:00
1eac111d4c
cleanup
2022-04-18 15:55:37 +08:00
44199781dc
nac3standalone: add tests for operators
2022-04-18 15:31:56 +08:00
41d62f7325
nac3core/toplevel: fixed typevar substitution bug
2022-03-23 00:25:10 +08:00
3f890f183c
nac3standalone/demo: handle imports consistently
2022-03-19 09:14:27 +08:00
234823c51a
nac3standalone: added typevar test
2022-03-18 16:52:52 +08:00
0ca2797428
fix compilation warning
2022-03-17 21:31:45 +08:00
63b0f29728
Fix broken tests
2022-03-05 00:27:51 +08:00
f97f93d92c
applied rustfmt and clippy auto fix
2022-02-21 18:27:46 +08:00
d9cb506f6a
nac3core: refactored for better error messages
2022-02-21 18:24:19 +08:00
352831b2ca
nac3core: removed legacy location definition
2022-02-13 22:39:24 +08:00
14d25b3b9d
Fixed broken tests
2022-02-13 17:21:42 +08:00
b18626b149
Fix compilation and test failures
2022-02-12 22:50:32 +08:00
64b94955fe
nac3standalone: reorganize demos, compare against cpython
2022-01-23 10:35:06 +08:00
4a1a4dc076
nac3core/artiq/standalone: symbol resolver return error msg for type error of host variables
2022-01-14 16:28:34 +08:00
4760851638
nac3standalone: link modules and load irrt like in nac3artiq
2022-01-09 02:17:58 +08:00
b638d1b4b0
nac3standalone: set up LLVM inliner like in nac3artiq
2022-01-08 21:03:58 +08:00
9cc9a0284a
nac3standalone: style
2021-12-28 10:59:17 +08:00
88f0da7bdd
add file name to AST node location
2021-12-28 01:28:55 +08:00
fa04768a77
redo "nac3core: fix #84 "
...
This reverts commit 86005da8e1
.
2021-12-27 22:56:26 +08:00
86005da8e1
Revert "nac3core: fix #84 "
...
This reverts commit 0902d8adf4
.
2021-12-26 08:35:27 +08:00
0902d8adf4
nac3core: fix #84
2021-12-23 15:26:48 +08:00
2008db8097
nac3standalone: remove unused import
2021-12-20 17:39:16 +08:00