David Mak
c6b9aefe00
core: Fix int32-to-uint64 conversion
...
This conversion should be sign-extended.
2023-11-03 16:24:26 +08:00
David Mak
8ad09748d0
core: Fix conversion from float to unsigned types
...
These conversions also need to wraparound.
2023-11-03 16:24:26 +08:00
David Mak
7a5a2db842
core: Fix handling of float-to-int32 casts
...
Out-of-bound conversions should be wrapped around.
2023-11-03 16:24:26 +08:00
David Mak
ff1fed112c
core: Rework gamma/gammaln to match SciPy behavior
...
Matches behavior for infinities and NaNs.
2023-11-01 18:03:29 +08:00
David Mak
36a6a7b8cd
core: Replace TopLevelDef comments with documentation
2023-11-01 18:03:29 +08:00
David Mak
2b635a0b97
core: Implement numpy and scipy functions
2023-11-01 18:03:29 +08:00
David Mak
60ad100fbb
core: Implement and expose {isinf,isnan}
2023-11-01 18:03:29 +08:00
David Mak
7cf7634985
core: Add create_fn_by_* functions
...
Used for abstracting the creation of function from different sources.
2023-11-01 18:03:29 +08:00
David Mak
068f0d9faf
core: Do not cast floor/ceil result to int
...
NumPy explicitly states that the return type of the floor/ceil is float.
2023-11-01 18:03:29 +08:00
David Mak
95810d4229
core: Remove {ceil64,floor64,round,round64}
...
These are not present in NumPy or Artiq.
2023-11-01 18:03:29 +08:00
David Mak
60a503a791
core: Allocate more stack variables at the beginning of function
...
All allocas for temporary objects are now placed in the beginning of the
function. Allocas for on-temporary objects are not modified because
these variables may appear in a loop and thus must be uniquely
allocated by different allocas.
2023-10-06 11:42:47 +08:00
David Mak
31dcd2dde9
core: Use i8 for boolean variable allocation
...
In LLVM, i1 represents a 1-byte integer with a single valid bit; The
rest of the 7 upper bits are undefined. This causes problems when
using these variables in memory operations (e.g. memcpy/memmove as
needed by List slicing and assignment).
We fix this by treating all local boolean variables as i8 so that they
are well-defined for memory operations. Function ABIs will continue to
use i1, as memory operations cannot be directly performed on function
arguments or return types, instead they are always converted back into
local boolean variables (which are i8s anyways).
Fixes #315 .
2023-09-25 15:42:07 +08:00
David Mak
6dfc43c8b0
core: Add name to build_gep_and_load
2023-09-22 17:16:29 +08:00
z78078
ebd25af38b
nac3standalone: allow classes without explicit init ( #221 )
...
Reviewed-on: M-Labs/nac3#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
ychenfo
ffac37dc48
nac3core: fix exception type in primitive store
2022-05-29 19:14:00 +08:00
Sebastien Bourdeauducq
a321b13bec
fix typos
2022-04-27 11:08:10 +08:00
wylited
35b6459c58
nac3core: replace paramter with parameter
2022-04-13 15:42:26 +08:00
wylited
e94b25f544
spelling ( #264 )
...
Co-authored-by: wylited <ds@m-labs.hk>
Co-committed-by: wylited <ds@m-labs.hk>
2022-04-13 11:32:31 +08:00
Sebastien Bourdeauducq
f5a6d29106
update insta snapshots
2022-04-12 09:56:49 +08:00
Sebastien Bourdeauducq
ca07cb66cd
format typevars consistently
2022-04-12 09:28:17 +08:00
ychenfo
0e0871bc38
nac3core, artiq: to_basic_value_enum takes an argument indicating the expected type
2022-04-10 01:28:22 +08:00
ychenfo
c29cbf6ddd
nac3core: add bound check for list slice
2022-04-05 18:21:46 +08:00
ychenfo
c3156afebd
nac3core: fix broken tests
2022-03-30 04:05:47 +08:00
ychenfo
388c9b7241
nac3core: better check and err msg for default param
2022-03-30 04:05:47 +08:00
ychenfo
6ab73a223c
nac3core/artiq: support default param of option type
2022-03-30 04:05:47 +08:00
ychenfo
26a4834254
fix warnings
2022-03-26 18:52:08 +08:00
ychenfo
80631fc92b
Option type support ( #224 )
...
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2022-03-26 15:09:15 +08:00
pca006132
24a26b53ae
nac3core/toplevel: fixed broken tests
...
We should not include class type variables in functions type variables.
2022-03-24 21:33:09 +08:00
pca006132
1084ba2158
nac3core: fixed typevar with finite range
...
1. Function type variables should not include class type variables,
because they are not bound to the function.
2. Defer type variable constraint evaluation until we get all fields
definition.
2022-03-24 21:31:51 +08:00
pca006132
41d62f7325
nac3core/toplevel: fixed typevar substitution bug
2022-03-23 00:25:10 +08:00
pca006132
b97c016629
nac3core: fixed test breakage
2022-03-18 16:52:28 +08:00
pca006132
35ac5cb6f6
nac3core: fixed typevar bug
2022-03-18 01:07:44 +08:00
Sebastien Bourdeauducq
0ca2797428
fix compilation warning
2022-03-17 21:31:45 +08:00
Sebastien Bourdeauducq
c5993c2a58
composer: improve class field typevar error message
2022-03-17 21:04:42 +08:00
pca006132
642e3b2bad
nac3core: moved all builtin errors to nac3artiq code
...
This remove the need for hard-coding those definition IDs.
2022-03-17 00:04:49 +08:00
pca006132
e126fef012
nac3artiq: support more builtin errors
2022-03-16 23:42:08 +08:00
ychenfo
5006028e2d
nac3core: abs builtin function
2022-03-08 23:23:36 +08:00
ychenfo
8241a29908
nac3core: max builtin function
2022-03-08 22:22:00 +08:00
ychenfo
adb5c69e67
nac3core: min builtin function
2022-03-08 21:59:37 +08:00
ychenfo
f7e62ab5b7
nac3ast/parser/core: use i128 for u64 constants
2022-03-08 18:21:14 +08:00
ychenfo
9f6c7b3359
nac3core: type conversion to/from uint
2022-03-08 13:42:45 +08:00
ychenfo
79c469301a
basic unsigned integer support
2022-03-08 13:34:02 +08:00
ychenfo
8602852241
nac3core: use signed extension to convert i32 to i64
2022-03-06 04:49:02 +08:00
pca006132
63b0f29728
Fix broken tests
2022-03-05 00:27:51 +08:00
pca006132
294943e303
nac3core: get exception ID from symbol resolver
...
We need to store the exception class somewhere in order to create them
back in the host. Fixes #200
2022-03-05 00:26:35 +08:00
Sebastien Bourdeauducq
da039e3acf
fix error message string
2022-03-02 08:04:15 +08:00
pca006132
323d77a455
nac3artiq: improve error message for out of range error
2022-02-28 23:09:14 +08:00
Sebastien Bourdeauducq
5d8e87d923
more readable type annotation error string
2022-02-28 16:24:03 +08:00
Sebastien Bourdeauducq
17792b76b7
rename exception symbols
2022-02-23 11:04:35 +08:00
pca006132
3ad25c8f07
nac3core: sort error messages for determinism
2022-02-22 14:33:43 +08:00