David Mak
552dbc02f1
[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 14:29:14 +08:00
David Mak
c5ae0e7c36
[standalone] Add tests for tuple equality
2024-08-21 16:25:32 +08:00
David Mak
b8dab6cf7c
[standalone] Add tests for string equality
2024-08-21 16:25:32 +08:00
David Mak
4d80ba38b7
[core] codegen/expr: Implement comparison of tuples
2024-08-21 16:25:32 +08:00
David Mak
33929bda24
[core] typecheck/typedef: Add support for tuple methods
2024-08-21 16:25:32 +08:00
David Mak
a8e92212c0
[core] codegen/expr: Implement string equality
2024-08-21 16:25:32 +08:00
David Mak
908271014a
[core] typecheck/magic_methods: Add equality methods to string
2024-08-21 16:25:32 +08:00
David Mak
c407622f5c
[core] codegen/expr: Add compilation error for unsupported cmpop
2024-08-21 15:46:13 +08:00
David Mak
d7952d0629
[core] codegen/expr: Fix assertions not generated for -O0
2024-08-21 15:36:54 +08:00
David Mak
ca1395aed6
[core] codegen: Remove redundant return
2024-08-21 15:36:54 +08:00
David Mak
7799aa4987
[meta] Do not specify rev in dependency version
2024-08-21 15:36:54 +08:00
David Mak
76016a26ad
[meta] Apply clippy suggestions
2024-08-21 13:07:57 +08:00
lyken
8532bf5206
standalone: add missing test_ndarray_ceil() run
2024-08-21 11:39:00 +08:00
lyken
2cf64d8608
apply clippy comment changes
2024-08-21 11:21:10 +08:00
lyken
706759adb2
artiq: apply cargo fmt
2024-08-21 11:21:10 +08:00
lyken
b90cf2300b
core/fix: add missing lifetime in gen_for*
2024-08-21 11:05:30 +08:00
Sebastien Bourdeauducq
0fc26df29e
flake: update nixpkgs
2024-08-19 23:53:15 +08:00
David Mak
0b074c2cf2
[artiq] symbol_resolver: Set private linkage for constants
2024-08-19 14:41:43 +08:00
Sébastien Bourdeauducq
a0f6961e0e
cargo: update dependencies
2024-08-19 13:15:03 +08:00
David Mak
b1c5c2e1d4
[artiq] Fix RPC of ndarrays to host
2024-08-15 15:41:24 +08:00
David Mak
69320a6cf1
[artiq] Fix LLVM representation of strings
...
Should be `%str` rather than `[N x i8]`.
2024-08-14 09:30:08 +08:00
David Mak
9e0601837a
core: Add compile-time feature to disable escape analysis
2024-08-14 09:29:48 +08:00
lyken
432c81a500
core: update insta after #489
2024-08-13 15:30:34 +08:00
David Mak
6beff7a268
[artiq] Implement core_log and rtio_log in terms of polymorphic_print
...
Implementation mostly references the original implementation in Python.
2024-08-13 15:19:03 +08:00
David Mak
6ca7aecd4a
[artiq] Add core_log and rtio_log function declarations
2024-08-13 15:19:03 +08:00
David Mak
8fd7216243
[core] toplevel/composer: Add lateinit_builtins
...
This is required for the new core_log and rtio_log functions, which take
a generic type as its parameter. However, in ARTIQ builtins are
initialized using one unifier and then actually used by another unifier.
lateinit_builtins workaround this issue by deferring the initialization
of functions requiring type variables until the actual unifier is ready.
2024-08-13 15:19:03 +08:00
David Mak
4f5e417012
[core] codegen: Add function to get format constants for integers
2024-08-13 15:19:03 +08:00
David Mak
a0614bad83
[core] codegen/expr: Make gen_string return `StructValue`
...
So that it is clear that the value itself is returned rather than a
pointer to the struct or its data.
2024-08-13 15:19:03 +08:00
David Mak
5539d144ed
[core] Add `CodeGenContext::build_in_bounds_gep_and_load`
...
For safer accesses to `gep`-able values and faster fails.
2024-08-13 15:19:03 +08:00
David Mak
b3891b9a0d
standalone: Fix several issues post script refactoring
...
- Add helptext for check_demos.sh
- Add back support for using debug NAC3 for running tests
- Output error message when argument is not recognized
- Fixed last non-demo script argument being ignored
- Add back SSE2 requirement to NAC3 (required for mandelbrot)
2024-08-13 15:19:03 +08:00
David Mak
6fb8939179
[meta] Update dependencies
2024-08-13 15:19:03 +08:00
lyken
973dc5041a
core/typecheck: Support tuple arg type in len()
2024-08-13 15:02:59 +08:00
David Mak
d0da688aa7
standalone: Add tuple len test
2024-08-13 15:02:59 +08:00
David Mak
12c4e1cf48
core/toplevel/builtins: Add support for len() on tuples
2024-08-13 15:02:59 +08:00
David Mak
9b988647ed
core/toplevel/builtins: Extract len() into builtin function
2024-08-13 15:02:59 +08:00
lyken
35a7cecc12
core/typecheck: fix np_array ndmin bug
2024-08-13 12:50:04 +08:00
lyken
7e3d87f841
core/codegen: fix bug in call_ceil function
2024-08-07 16:40:55 +08:00
David Mak
ac0d83ef98
standalone: Add vararg.py
2024-08-06 11:48:42 +08:00
David Mak
3ff6db1a29
core/codegen: Add va_start and va_end intrinsics
2024-08-06 11:48:42 +08:00
David Mak
d7b806afb4
core/codegen: Implement support for va_info on supported architectures
2024-08-06 11:48:40 +08:00
David Mak
fac60c3974
core/codegen: Handle vararg in function generation
2024-08-06 11:46:00 +08:00
David Mak
f5fb504a15
core/codegen/expr: Implement vararg handling in gen_call
2024-08-06 11:46:00 +08:00
David Mak
faa3bb97ad
core/typecheck/typedef: Add vararg to Unifier::stringify
2024-08-06 11:46:00 +08:00
David Mak
6a64c9d1de
core/typecheck/typedef: Add is_vararg_ctx to TTuple
2024-08-06 11:45:54 +08:00
David Mak
3dc8498202
core/typecheck/typedef: Handle vararg parameters in unify_call
2024-08-06 11:43:13 +08:00
David Mak
cbf79c5e9c
core/typecheck/typedef: Add is_vararg to FuncArg, ConcreteFuncArg
2024-08-06 11:43:13 +08:00
David Mak
b8aa17bf8c
core/toplevel/composer: Add parsing for vararg parameter
2024-08-06 10:52:24 +08:00
David Mak
f5b998cd9c
core/codegen: Remove unnecessary mut from get_llvm*_type
2024-08-06 10:52:24 +08:00
David Mak
c36f85ecb9
meta: Update dependencies
2024-08-06 10:52:24 +08:00
lyken
3a8c385e01
core/typecheck: fix missing ExprKind::Asterisk in fix_assignment_target_context
2024-08-05 19:30:48 +08:00