1
0
forked from M-Labs/artiq
Commit Graph

6783 Commits

Author SHA1 Message Date
Yann Sionneau
e3ef077cb2 Fix module installation
Allow to use setup.py for ARTIQ instead of PYTHONPATH.
Without this, the installation is incomplete.
2014-10-11 00:42:26 +08:00
c659acb26e transforms/lower_time: fix time_to_cycles/cycles_to_time 2014-10-11 00:35:49 +08:00
2920ac85d2 transforms/inline: support attributes on user variables/calls 2014-10-08 18:01:15 +08:00
e22301ea05 transforms: track units, now() returns seconds, implement time_to_cycles and cycles_to_time 2014-10-06 23:28:56 +08:00
1a64e92e75 language/units: add mod 2014-10-06 23:26:35 +08:00
0985a53df2 language/core: add time_to_cycles and cycles_to_time 2014-10-06 23:26:21 +08:00
9caaaeb414 py2llvm/fractions: add lt, le, gt, ge comparisons 2014-10-06 23:22:05 +08:00
8612a8a9ca devices/dds_core: remove stale kernel_attr 2014-10-06 17:23:00 +08:00
70fc0f6ce7 language/units: better support for ops on different dimensions 2014-10-05 23:15:25 +08:00
6c44fe0a87 language/units: fix printing 2014-10-05 21:35:24 +08:00
2a19d7d32b language/units: use only a string to identify units 2014-10-05 21:01:08 +08:00
2944592201 Remove microcycle unit
Introducing it complicates things and has no advantage with good rational arithmetic support.
2014-10-05 17:54:22 +08:00
59194176a9 add rudimentary master/controller/client 2014-10-05 16:25:31 +08:00
76fed11d59 rtio: raise RTIOSequenceError exceptions when events are not submitted in-order 2014-09-30 19:32:11 +08:00
73d0a84b44 doc: various cleanups 2014-09-30 18:10:40 +08:00
cb036a30c7 devices/dds_core: document 2014-09-30 17:38:52 +08:00
5ac42e42c1 rename artiq.language.std -> artiq 2014-09-30 17:38:02 +08:00
821834891e language/core: use 'var' for class attribute docstring 2014-09-30 16:43:27 +08:00
05d8dde412 language/core: pass docstrings through kernel decorator 2014-09-30 16:43:00 +08:00
5099643f84 devices/rtio_core: rename RTIOCounter to RTIOIn and document 2014-09-30 16:42:07 +08:00
c95f5bdff3 transforms/inline: strip docstrings 2014-09-30 00:46:14 +08:00
d3e70ec53d language/units: cleanup and add docstrings 2014-09-29 23:41:37 +08:00
f105e5e214 language: add std module with common user features 2014-09-29 23:14:10 +08:00
1ae7724a15 transforms/interleave: support try statements 2014-09-29 18:09:48 +08:00
2a40d69290 transforms/inline: fix runtime exception encoding 2014-09-29 18:09:26 +08:00
4572b7657f devices/runtime_exceptions: fix exception_map generation 2014-09-29 18:08:58 +08:00
035b541a73 language/core: add RuntimeException 2014-09-29 17:36:35 +08:00
4a1cad5227 language/core: reduce namespace pollution 2014-09-29 17:28:14 +08:00
741228878c add basic setup.py and infrastructure 2014-09-27 21:28:06 +08:00
7289c18a42 transforms/unroll_loops: count statements in try blocks 2014-09-27 11:57:47 +08:00
4a5e398857 py2llvm: support continue statement 2014-09-27 00:27:11 +08:00
89fdab2176 py2llvm: factorize basic block termination test 2014-09-26 23:53:56 +08:00
d10112688f py2llvm: execute finally block when exception is re-raised in handler 2014-09-26 23:44:44 +08:00
4978f8b3d7 py2llvm: remove LLVM-crashing (unreachable) non-SSA path with exception ID 2014-09-26 19:38:14 +08:00
20ca97485c py2llvm: support break/return in try block 2014-09-26 19:21:49 +08:00
8852dd394e transforms/unroll_loop: handle breaks in try and with blocks 2014-09-26 19:20:56 +08:00
f332def3a2 py2llvm: fix behaviour of 'break' in 'else' clause of loops 2014-09-26 18:16:20 +08:00
af0cd902d3 get frequency from RTIO, support fractional frequencies 2014-09-26 17:24:06 +08:00
dd6de244fe minor cleanups 2014-09-26 17:21:51 +08:00
e0cd45b1ba devices/corecom_serial: do not use deprecated logger.warn 2014-09-25 12:58:11 +08:00
4f26b6281d host: support runtime device exceptions 2014-09-25 12:57:26 +08:00
cf1f1269b2 py2llvm/fractions: use internal linkage for gcd function 2014-09-24 19:21:45 +08:00
8aebab580f transforms/inline: support non-hashable host objects 2014-09-24 17:16:40 +08:00
82da734e89 transforms/inline: remove _is_in_attr_list 2014-09-24 17:02:33 +08:00
4d3d15ad99 transforms/inline: support reraise and tuple exception matching 2014-09-23 22:10:15 +08:00
f7075b24f6 py2llvm: fix exception matching 2014-09-23 22:09:35 +08:00
af15f45bb9 runtime: do not use buggy llvm.eh.sjlj.* intrinsics 2014-09-23 22:09:08 +08:00
8b769a0417 devices/runtime: add more eh functions 2014-09-23 16:25:41 +08:00
d1085449aa py2llvm: support for try/except/else/finally blocks 2014-09-23 16:23:54 +08:00
c989daf4d6 py2llvm: stop after other types of termination instructions 2014-09-23 16:21:48 +08:00
e8c92c3b6f transforms/inline: support catchall 'except' clauses 2014-09-23 16:20:36 +08:00
bad87ef38b devices/corecom_serial: unpack unsigned chars 2014-09-22 13:23:39 +08:00
19abab3feb devices/runtime: rename syscall to build_syscall 2014-09-22 13:22:38 +08:00
5244a63b55 devices/runtime: register eh_raise service 2014-09-22 13:22:04 +08:00
a8df1703fb py2llvm: support raise statement 2014-09-22 13:20:27 +08:00
3de24619b2 corecom: exception support 2014-09-21 23:36:10 +08:00
e821f9eb83 transforms/inline: encode exceptions 2014-09-21 23:30:40 +08:00
655835e8de language/core: cleanup 2014-09-21 23:18:33 +08:00
320d3c36ed language/core: add EncodedException 2014-09-21 23:17:46 +08:00
426d6dd979 corecom_serial: logger/debugging 2014-09-21 18:19:14 +08:00
7e45cd62ef language/core: add docstrings 2014-09-18 17:44:11 +08:00
f5167f21fb language/core: make KernelFunctionInfo private 2014-09-18 17:20:34 +08:00
3249b8ad3e language/core: reduce namespace pollution 2014-09-18 16:30:38 +08:00
5fe3cffc84 transforms/unroll_loop: do not unroll breakable loops 2014-09-18 09:53:08 +08:00
0b1ebb1ba5 devices/core: raise loop unrolling limit 2014-09-17 19:52:18 +08:00
9af0e9c91a devices/runtime: support dumping of ELF object via ARTIQ_DUMP_OBJECT environment variable 2014-09-17 18:03:54 +08:00
af6457c5fa devices/core: enable unparser via ARTIQ_UNPARSE environment variable 2014-09-17 17:06:51 +08:00
a79709f0ae transforms/inline: let float() calls through 2014-09-17 16:42:28 +08:00
97ad9efa85 py2llvm/base_types: implement int, floor, floordiv, and boolean ops on floats 2014-09-17 16:24:37 +08:00
80f4bc7741 py2llvm/base_types: fix corner cases with bool/int/float conversion 2014-09-17 16:23:02 +08:00
2e45d7267d py2llvm/fractions: fix round() 2014-09-17 16:22:00 +08:00
dc38356ad9 transform/tools/value_to_ast: support floats 2014-09-16 23:11:53 +08:00
f061b15994 py2llvm: add floating point support 2014-09-16 23:11:30 +08:00
dbca62c1d7 py2llvm/fractions: fix or_sub 2014-09-16 16:43:01 +08:00
140b4eb594 devices/rtio_core: set OE, implement gate/count 2014-09-15 22:48:22 +08:00
8bf7b27a89 runtime: increase initial_time 2014-09-15 22:47:19 +08:00
11d8840277 runtime: new serial protocol, support multiple entry points and log messages 2014-09-15 22:40:33 +08:00
f529361c8b runtime: add rtio_oe and rtio_get syscalls 2014-09-14 23:30:33 +08:00
a55018953d devices/rtio_core: add dummy counter 2014-09-13 19:37:57 +08:00
5c228f9114 Consistent variable naming 2014-09-13 19:32:21 +08:00
71adcb74bf language/core: remove kernel_attr_ro 2014-09-13 19:24:58 +08:00
123ddb26a1 transforms/inline: refactor and fix _ReferenceManager.inline 2014-09-13 19:24:32 +08:00
dc9515fc62 transforms/inline: support for function return values 2014-09-13 16:17:16 +08:00
3d440d5f15 py2llvm: support pass statements 2014-09-13 16:16:15 +08:00
6861d28d2d runtime: support arbitrarily long initial DDS setup time 2014-09-12 15:40:34 +08:00
92efde1e40 devices/dds_core: support realtime FUD and zero-length pulse collapsing 2014-09-12 15:36:17 +08:00
a60e6237bf runtime: increase initial time
This leaves some time for DDS FUD operations to complete.
2014-09-12 15:34:29 +08:00
16b2d9f177 runtime: support real-time FUD 2014-09-12 15:34:11 +08:00
b5f145d976 devices: new RTIO driver 2014-09-12 15:28:02 +08:00
10d796e026 runtime: add rtio_replace syscall 2014-09-11 23:14:45 +08:00
f0c2003778 py2llvm/fractions: fix addsub with int 2014-09-11 23:11:57 +08:00
7e889b014d py2llvm: add break statement support 2014-09-10 16:16:12 +08:00
d66448a486 py2llvm: for loop and range support 2014-09-10 16:06:27 +08:00
5144da3f9a transforms/inline: add sequential block when inlining function 2014-09-09 22:01:28 +08:00
e6530075d9 devices/dds_core: add on/off methods 2014-09-09 22:00:51 +08:00
0ad2b4d09b transform/inline: fix subscript handling 2014-09-09 21:03:15 +08:00
8aa69cb959 devices/runtime: use new py2llvm methods 2014-09-09 21:02:38 +08:00
eec52a2e29 py2llvm: array support 2014-09-09 17:13:48 +08:00
e2ca571c89 transforms/inline: let array calls through 2014-09-09 17:13:26 +08:00
f410b4d241 language/core: add array function 2014-09-09 17:12:37 +08:00
9eb2a2441d py2llvm: factor repr/same_type/merge for values 2014-09-09 10:30:10 +08:00
60368aa9e2 py2llvm: complete rational arithmetic support 2014-09-08 18:45:46 +08:00
1133308dd5 py2llvm: support 'neg' on VInt 2014-09-08 18:25:04 +08:00
71b8575d7a py2llvm/fractions: add numerator/denominator getattr support 2014-09-07 15:26:05 +08:00
e2d834928f py2llvm/ast_body: support getattr 2014-09-07 15:24:19 +08:00
c5c38c6376 py2llvm: remove unnecessary indirection for unary operators 2014-09-07 15:09:38 +08:00
bce687b4a0 py2llvm/base_types: implement 'not' on 'None' 2014-09-07 14:55:46 +08:00
dddc9259b0 py2llvm: run passes before creating EE 2014-09-07 14:47:09 +08:00
15dcf3351b py2llvm: move GCD function into LLVM IR 2014-09-07 14:46:32 +08:00
3c8b541939 py2llvm: reorganize, split 'values' module, factor LLVM module/pass management 2014-09-07 14:09:03 +08:00
6deaf7b81a py2llvm: add support for function parameters and return values, add unit test 2014-09-06 19:03:08 +08:00
64c29bcfa6 py2llvm/values: support 'not' on VInt 2014-09-06 19:02:09 +08:00
2ef187b7d3 py2llvm/values: fix arity of 'not' 2014-09-06 18:18:08 +08:00
a647e1104d compiler: split into transforms and py2llvm 2014-09-05 22:18:31 +08:00
ef1f8787dc devices/runtime: minor cleanup 2014-09-05 21:51:58 +08:00
86193437f5 compiler/ir_values: fix gcd64 2014-09-05 16:48:27 +08:00
4915b4b5aa PEP8 2014-09-05 12:03:22 +08:00
7e9df82e37 compiler/ir_values: implement rational mul/div 2014-08-28 18:58:24 +08:00
841e7cce35 compiler/ir_values: fix right operations 2014-08-28 18:58:05 +08:00
a861226409 compiler/ir: fraction normalization 2014-08-28 17:24:33 +08:00
76cef042a5 compiler/ir: introduce Fraction type (incomplete) 2014-08-19 17:52:55 +08:00
0832507c26 compiler/ir: refactor SSA/alloca management 2014-08-19 17:52:05 +08:00
62b872ad94 devices/dds_core: use new compiler features to compute tuning word trivially 2014-08-18 23:53:10 +08:00
7a90f4f4ec runtime: start RTIO counter at first rtio_set 2014-08-18 23:46:58 +08:00
7d8dc4ef30 runtime: support 64-bit RTIO timestamps 2014-08-18 23:41:54 +08:00
b3b61d8b6b compiler/fold_constants: fix int/round 2014-08-18 23:11:53 +08:00
24544f2758 compiler/tools/eval_constant: raise NotConstant on calls 2014-08-18 23:11:27 +08:00
b1598ba659 compiler/inline: add microcycle_unit as reserved name 2014-08-18 23:06:50 +08:00
7ea28642e4 compiler: add lower_units transform 2014-08-18 23:06:34 +08:00
dcc140c5a9 compiler/lower_time: make 'now' an int64 2014-08-18 23:04:28 +08:00
331dbc971b language/units: add microcycle unit for core time 2014-08-18 22:52:54 +08:00
56ccd054eb compiler/fold_constants: support int, int64, round and round64 2014-08-18 22:52:19 +08:00
219aa23d25 compiler/ir_values: implement sign extension and truncation 2014-08-18 22:51:54 +08:00
4ff61a8f56 compiler/ir_ast_body,ir_values: minor fixes 2014-08-18 22:51:24 +08:00
a5e5b5c870 compiler: pass funcdef instead of statement list 2014-08-18 21:37:30 +08:00
86577ff64f compiler/inline: update reserved names 2014-08-18 21:34:13 +08:00
e1cdec8c07 compiler/ir: fix compile_function call 2014-08-18 21:32:52 +08:00
1e654f5da2 compiler/tools: support int64 in value_to_ast 2014-08-18 21:31:56 +08:00
fc9cf67069 compiler/ir: use new infrastructure 2014-08-18 14:34:14 +08:00
15c78df3a2 devices/runtime: new syscall API 2014-08-18 14:33:54 +08:00
65566ec710 compiler/ir_ast_body,ir_infer_types: support syscalls 2014-08-18 14:33:21 +08:00
4b0788d92c compiler: add None type support 2014-08-17 23:46:29 +08:00
9e21ea5658 compiler/ir_ast_body,ir_infer_types: use Python dict directly as namespace 2014-08-17 22:15:10 +08:00
30ef6119e6 compiler/ir_ast_body: refactor and add statement visitor 2014-08-17 21:46:11 +08:00
d41d06835c compiler/ir_values: support bool operation on VBool 2014-08-17 21:45:36 +08:00
3e4cbba018 compiler: new architecture for type inference and LLVM code emission 2014-08-16 23:20:16 +08:00
9189ad5fab language/core: update kernel ro types 2014-08-16 23:19:25 +08:00
71825f5ae0 language/core: add round64 2014-08-16 23:18:56 +08:00
02798d1996 infer_type: better rules 2014-08-16 20:58:10 +08:00
232092166e units: support division by quantities in the same unit 2014-08-16 10:27:44 +08:00
7422a919cc sim/time: use second as reference unit 2014-08-16 10:22:31 +08:00
2e9410464d language/core: add int64 2014-08-15 23:43:59 +08:00
8bdc7964b8 compiler: add infer_types module (WIP) 2014-08-13 22:08:34 +08:00
fd16be6f73 sim/devices: remove implicit core 2014-08-13 18:37:01 +08:00
c18495d484 MPO -> AutoContext 2014-08-13 18:30:57 +08:00
eb4054d976 sim: use MPO 2014-08-13 18:16:40 +08:00
2135e37dca compiler: use value_to_ast(x) instead of ast.Num(x) 2014-08-13 18:02:24 +08:00
3446c1f914 language/core: remove unneeded import 2014-08-13 18:00:38 +08:00
899a034204 compiler/lower_time: adapt to new unit system 2014-08-13 17:59:53 +08:00
9cbf31153a compiler/ir: compile fractions with denominator==1 as integers 2014-08-13 17:58:48 +08:00
70fbc6ad56 compiler/interleave: use eval_constant from tools 2014-08-13 17:58:06 +08:00
5481baac1d compiler/inline: cleanup reference manager, recognize Fraction 2014-08-13 17:56:55 +08:00
fe5b3cc67e compiler/fold_constants: use eval_constant from tools 2014-08-13 17:54:58 +08:00
0145e52d4b compiler/tools: add eval_constant and Fraction support 2014-08-13 17:54:22 +08:00
a2691ab07a language/units: do not quantize 2014-08-13 17:52:01 +08:00
f390e9a7d1 corecom_serial: add CRC for kernel 2014-07-23 19:12:22 -06:00
b2bb837d22 compiler/ir: add binary AND and OR 2014-07-23 17:10:12 -06:00
52e8d4150b devices/dds_core: use MPO and runtime IF 2014-07-23 11:50:23 -06:00
ba088614d8 runtime: add dds_program 2014-07-23 11:49:48 -06:00
d922c3db7e compiler/ir: replace quantities with their integer value 2014-07-23 11:48:43 -06:00
1b52941381 compiler/ir: support shifts 2014-07-23 11:48:15 -06:00
dec7c1438f runtime: implement rtio_sync syscall 2014-07-22 11:36:54 -06:00
8769066e89 compiler/devices: set initial time 2014-07-21 13:22:07 -06:00
041540089a devices: add RTIO support 2014-07-20 18:36:17 -06:00
1885a87187 devices/gpio_core: use MPO 2014-07-20 18:23:53 -06:00
a9b96cefbe compiler/ir: support AugAssign 2014-07-16 09:43:46 -06:00
591509d31b compiler: lower time transform 2014-07-15 11:22:11 -06:00
17fab6f024 corecom_serial: support ident and runtime environment creation 2014-07-15 11:21:31 -06:00
6f28ab2cc6 devices: let corecom create runtime environment, add dummy corecom 2014-07-15 11:20:13 -06:00
529b83bb58 language/core/MPO: new parameter/channel mechanism 2014-07-11 01:12:40 +02:00
6509f1fd04 artiq.language.experiment -> artiq.language.core 2014-07-10 18:13:37 +02:00
5f01b061f7 MPO: implicit core 2014-07-10 15:38:51 +02:00
d76182a3ee Experiment -> MPO (Managed Parameter Object) 2014-07-10 15:29:22 +02:00
4f0e40ca3c devices/core: service RPC requests 2014-07-07 19:14:23 +02:00
09e78a1f5e devices/corecom_serial: RPC server 2014-07-07 19:11:43 +02:00
ffd2bdc4eb compiler/inline: return number -> function RPC map 2014-07-07 19:11:07 +02:00
5a3fa5dbff devices/runtime: function type strings + variadic function support 2014-07-06 21:06:27 +02:00
e0ac1193c6 compiler/ir: support function calls in expressions 2014-07-06 21:06:01 +02:00
61c0b65323 devices/runtime: machine code emission 2014-07-05 22:48:14 +02:00
1aac985f10 devices/core: compile to machine code and run on hardware 2014-07-05 22:47:54 +02:00
301b7d51fa add gpio_out syscall 2014-07-05 22:46:43 +02:00
37cd4e7e86 devices: add simple GPIO out 2014-07-05 22:45:08 +02:00
a8ef4d8b91 compiler/ir: create machine code from kernel statements 2014-07-05 22:44:54 +02:00
de238503d2 devices/runtime: use regular function call instead of syscall 2014-07-05 19:39:05 +02:00
99c99484ae compiler/ir: load into device 2014-07-05 19:38:45 +02:00
711be75c35 compiler/ir: pass arguments to syscall 2014-07-05 19:13:05 +02:00
6b8ac5ae7b devices: add basic core device serial comms driver 2014-07-05 19:12:21 +02:00
29bd6e377d core_dds -> dds_core 2014-07-04 17:57:53 +02:00
10db450098 Minor cleanup 2014-07-04 17:50:35 +02:00
71323fb7cd compiler: system calls 2014-07-04 17:17:01 +02:00
74cdafdde5 compiler: interleave transform 2014-06-22 18:52:37 +02:00
6ea0430cec compiler/ir: simplify type dictionaries 2014-06-22 00:04:46 +02:00
b28fdf5fb0 compiler: add unroll_loops transform 2014-06-21 15:06:15 +02:00
5a8074a12f compiler: propagate AST node location info 2014-06-21 14:53:09 +02:00
c71eb702bb tools/make_stmt_transformer: pass args/kwargs 2014-06-21 12:13:28 +02:00
c3092ae13f compiler: factorize operation of NodeTransformer on statement lists 2014-06-21 00:40:52 +02:00
6400e28e4c compiler: fold constants 2014-06-21 00:19:56 +02:00
94ff2e2ddc compiler: share value_to_ast 2014-06-21 00:19:40 +02:00
5b0fd50dbe inline: support rw kernel attributes 2014-06-18 21:04:54 +02:00
d41ac863f4 inline: support kernel_attr_ro 2014-06-17 19:46:22 +02:00
0d9bdc101c inline: check inlined functions are on the same core device 2014-06-17 18:52:48 +02:00
08ab99d33e inline: basic function inlining 2014-06-17 18:37:51 +02:00
d87b207b8a compiler/inline: embeddable calls 2014-06-16 23:52:19 +02:00
79f20ebfcf Make syscall an experiment function instead of a core method 2014-06-16 23:51:27 +02:00
9db8627081 compiler: generate RPC calls 2014-06-16 22:56:08 +02:00
792ac44245 inline: return statements 2014-06-16 22:01:20 +02:00
c021b2ef41 compiler/inline: handle function params and builtin calls 2014-06-16 21:52:38 +02:00
f035507bac language/experiment: attach k_function_info in kernel decorator, do not use star notation for kernel args 2014-06-16 21:51:58 +02:00
733a03b7ad cleanup 2014-06-16 21:35:08 +02:00
d63c3264d3 devices/core: test inline transform first 2014-06-16 21:33:59 +02:00
7ec448cdc9 compiler: inline transform WIP 2014-06-10 15:23:14 +02:00
3cd462f4d5 experiment: simplify definition of kernel_attr 2014-06-10 15:22:27 +02:00
8cc9c9eed6 units: remove duplicate method 2014-06-10 15:16:45 +02:00
7eb9641905 compiler: share eval_ast 2014-06-10 15:16:28 +02:00
d7f9e6b228 experiment: add list of kernel globals 2014-06-10 15:16:04 +02:00
b0006e933a experiment/_DummyTimeManager: add missing enter_parallel 2014-06-10 15:15:35 +02:00
9e8077b873 First simple attempt at compiling Python AST to LLVM IR 2014-06-07 18:47:06 +02:00
13acb57179 TimeManager: use units further, add now/at functionality 2014-05-30 19:01:27 +02:00
732412e4c9 units: implement operators 2014-05-30 19:00:33 +02:00
c769bdab9b Introduce compiler and device modules 2014-05-30 18:20:13 +02:00
18ef03c545 Refactor, introduce experiment class, kernel decorator, parameters and channel objects 2014-05-28 22:42:01 +02:00
8e1d334b7b Add unparser (from Python source) 2014-05-24 23:05:48 +02:00
c3c83f86b6 Basic simulation of Al spectroscopy 2014-05-17 14:08:50 +02:00