a0a1f35b5d
core/ndstrides: introduce NDArray
...
NDArray with strides.
2024-10-18 14:21:27 +08:00
45f590f238
core/irrt: fix exception.hpp C++ castings
2024-10-18 14:21:27 +08:00
d51f45193f
core/toplevel/helper: add {extract,create}_ndims
2024-10-18 14:21:26 +08:00
572ae116ec
core/object: introduce object
...
A small abstraction to simplify implementations.
2024-10-18 14:21:26 +08:00
870a922367
[core] introduce models
2024-10-18 14:21:04 +08:00
b6cd2a6993
[meta] Reorganize order of use declarations - Phase 3
2024-10-17 16:25:52 +08:00
a98f33e6d1
[meta] Reorganize order of use declarations - Phase 2
...
Some more rules:
- For module-level imports, prefer no prefix > super > crate.
- Use crate instead of super if super refers to the crate-level module
2024-10-17 15:57:33 +08:00
56c845aac4
[standalone] Add support for registering globals without type decl
2024-10-07 20:44:06 +08:00
65a12d9ab3
[core] Refactor registration of top-level variables
2024-10-07 17:05:48 +08:00
9c6685fa8f
[core] typecheck/function_check: Fix lookup of defined ids in scope
2024-10-07 16:51:37 +08:00
2bb788e4bb
[core] codegen/expr: Materialize implicit globals
...
Required for when globals are read without the use of a global
declaration.
2024-10-07 13:13:20 +08:00
42a2f243b5
[core] typecheck: Disallow redeclaration of var shadowing global
2024-10-07 13:11:00 +08:00
3ce2eddcdc
[core] typecheck/type_inferencer: Infer whether variables are global
2024-10-07 13:10:46 +08:00
51bf126a32
[core] typecheck/type_inferencer: Differentiate global symbols
...
Required for analyzing use of global symbols before global declaration.
2024-10-07 12:25:00 +08:00
1a197c67f6
[core] toplevel/composer: Reduce lock scope while analyzing function
2024-10-05 15:53:20 +08:00
e60e8e837f
[core] Add support for global statements
2024-10-04 13:24:27 +08:00
9fdbe9695d
[core] Add generator to SymbolResolver::get_symbol_value
...
Needed in a future commit.
2024-10-04 13:20:29 +08:00
8065e73598
[core] toplevel/composer: Add type analysis for global variables
2024-10-04 13:20:29 +08:00
192290889b
[core] Add IdentifierInfo
...
Keeps track of whether an identifier refers to a global or local
variable.
2024-10-04 13:20:24 +08:00
1407553a2f
[core] Implement parsing of global variables
...
Globals are now parsed into symbol resolver and top level definitions.
2024-10-04 13:18:29 +08:00
c7697606e1
[core] Add TopLevelDef::Variable
2024-10-04 13:09:25 +08:00
a43b59539c
[meta] Move variables declarations closer to where they are first used
2024-10-04 13:00:16 +08:00
fe06b2806f
[meta] Reorganize order of use declarations
...
Use declarations are now grouped into 4 groups:
- Declarations from the standard library
- Declarations from external crates
- Declarations from other crates in this project
- Declarations from within this module
Furthermore, all use declarations are grouped together to enhance
readability. super::super is also replaced by an equivalent crate::
declaration.
2024-10-04 12:52:01 +08:00
7f6c9a25ac
[meta] Update Cargo dependencies
2024-10-04 12:52:01 +08:00
f2c047ba57
artiq: support async rpcs
...
Co-authored-by: mwojcik <mw@m-labs.hk>
Co-committed-by: mwojcik <mw@m-labs.hk>
2024-09-13 12:12:13 +08:00
5e2e77a500
[meta] Bump inkwell to v0.5
2024-09-13 11:11:14 +08:00
7f629f1579
core: fix comment in unify_call
2024-09-11 15:46:19 +08:00
5640a793e2
core: allow np_full to take tuple shapes
2024-09-11 15:46:19 +08:00
5a34551905
allow the use of the LLVM shared library
...
Which in turns allows working around the incompatibility of the LLVM static library
with Rust link-args=-rdynamic, which produces binaries that either fail to link (OpenBSD)
or segfault on startup (Linux).
The year is 2024 and compiler toolchains are still a trash fire like this.
2024-09-09 11:17:31 +08:00
668ccb1c95
nac3core: expose inkwell and nac3parser
2024-09-06 11:06:26 +08:00
bd06155f34
irrt: compatibility with pre-C23 compilers
2024-09-05 18:54:55 +08:00
9c33c4209c
[core] Fix type of ndarray.element_type
...
Should be the element type of the NDArray itself, not the pointer to its
type.
2024-08-30 22:47:38 +08:00
71c3a65a31
[core] codegen/stmt: Fix obtaining return type of sret functions
2024-08-29 19:15:30 +08:00
8c540d1033
[core] codegen/stmt: Add more casts for boolean types
2024-08-29 16:36:32 +08:00
0cc60a3d33
[core] codegen/expr: Fix missing cast to i1
2024-08-29 16:36:32 +08:00
a59c26aa99
[artiq] Fix RPC of ndarrays from host
2024-08-29 16:08:45 +08:00
15ac00708a
[core] Use quoted include paths instead of angled brackets
...
This is preferred for user-defined headers.
2024-08-28 16:37:03 +08:00
22c4d25802
core/typecheck: add missing typecheck in matmul
2024-08-27 22:59:39 +08:00
9848795dcc
core/irrt: add exceptions and debug utils
2024-08-27 22:55:22 +08:00
58222feed4
core/irrt: split into headers
2024-08-27 22:55:22 +08:00
518f21d174
core/irrt: build.rs capture IR defined constants
2024-08-27 22:55:22 +08:00
e8e49684bf
core/irrt: build.rs capture IR defined types
2024-08-27 22:55:22 +08:00
b2900b4883
core/irrt: use +std=c++20 to compile
...
To explicitly set the C++ variant and avoid inconsistencies.
2024-08-27 22:55:22 +08:00
c6dade1394
core/irrt: reformat
2024-08-27 22:55:22 +08:00
d3b4c60d7f
core/irrt: comment build.rs & move irrt to nac3core/irrt
2024-08-27 22:55:22 +08:00
5b2b6db7ed
core: improve error messages
2024-08-26 18:37:55 +08:00
2c88924ff7
core: add support for simple polymorphism
2024-08-26 18:37:55 +08:00
a744b139ba
core: allow Call and AnnAssign in init block
2024-08-26 18:37:55 +08:00
2b2b2dbf8f
[core] Fix resolution of exception names in raise short form
...
Previous implementation fails as `resolver.get_identifier_def` in ARTIQ
would return the exception __init__ function rather than the class.
We fix this by limiting the exception class resolution to only include
raise statements, and to force the exception name to always be treated
as a class.
Fixes #501 .
2024-08-26 18:35:02 +08:00
d9f96dab33
[core] Add codegen_unreachable
2024-08-23 13:10:55 +08:00