39dfbb4162
ddb: support for best effort RPC client
2015-02-12 00:54:54 +08:00
1b3603d8bf
pc_rpc/BestEffortClient: add docstrings
2015-02-12 00:50:48 +08:00
Yann Sionneau
b396f5dd43
pc_rpc: support for method listing, frontend: artiq_rpctool, +fixes by SB
2015-02-12 00:38:30 +08:00
6d11da3887
pc_rpc/BestEffortClient: add logging
2015-02-12 00:21:39 +08:00
a7405dea1c
protocols/pc_rpc: add best effort client
2015-02-12 00:14:20 +08:00
c91705c5d1
ctlmgr: support hostnames in DDB
2015-02-09 20:03:34 +08:00
542e047f5a
ctlmgr: clean shutdown
2015-02-08 21:44:49 +08:00
a50c74523f
ctlmgr: split command arguments properly
2015-02-08 12:18:57 +08:00
abb7d9f911
ctlmgr: catch create_subprocess_exec errors and retry
2015-02-08 12:15:22 +08:00
96a01efc48
ctlmgr: wait for processes to terminate before starting new ones
2015-02-08 00:59:08 +08:00
e7d85c5b87
ctlmgr: basic working implementation
2015-02-07 23:52:05 +08:00
aba749093b
ctlmgr: get local bind address, format commands
2015-02-07 01:14:27 +08:00
0d0a05a487
sync_struct/Subscriber: add before_receive_cb, export reader/writer
2015-02-07 01:13:15 +08:00
f9d3bd107e
ctlmgr: retry connection to master, print received ddb
2015-02-06 18:58:54 +08:00
17685d1e98
controller manager skeleton
2015-02-06 12:17:51 +08:00
2f06574381
ddb: controller support
2015-02-05 22:53:31 +08:00
4167e669d2
gui/explib: add to artiq top-level import
2015-02-05 19:50:03 +08:00
8df1b03f0f
artiq_run: add verbosity config
2015-02-04 19:09:54 +08:00
0ba07e67b8
artiq/tools/verbosity_args: add help
2015-02-04 19:09:37 +08:00
0e65f71705
artiq_run: HDF5 output support
2015-02-04 18:46:55 +08:00
af79392918
master: basic dumping of results to HDF5
2015-02-04 18:37:57 +08:00
2f4a83b97a
gui: access to parameter DB from GUI files
2015-02-04 16:13:56 +08:00
1b122dd887
sync_struct,gui: refactor Subscriber data distribution to support access to parameter DB from GUI file
2015-02-04 15:06:25 +08:00
186aa7fdb7
style
2015-02-04 14:44:39 +08:00
Yann Sionneau
fc92a66e51
asyncio: Use ProactorEventLoop on Windows
2015-02-03 22:29:03 +08:00
c259c4f46f
gui/rt_results: display group name in window title
2015-01-31 16:57:50 +08:00
2fbe22e15e
master,client: support changing real-time results group
2015-01-30 20:36:54 +08:00
0ebe56f595
gui/rt_results: support raw view
2015-01-30 19:07:33 +08:00
Yann Sionneau
526887140d
Set WARNING as default log level + update documentation
2015-01-30 19:04:04 +08:00
37feaf1cea
comm_serial: use serial.serial_for_url
2015-01-30 11:47:20 +08:00
45c0e2874f
master/db: exclude Notifier attributes from kernel attr init
2015-01-29 23:48:39 +08:00
c0c0137d9a
transforms/inline: support skipping of attr init
2015-01-29 23:48:03 +08:00
7d6b93d8eb
master/db: fix realtime data lookup
2015-01-29 21:45:24 +08:00
9aa7155502
gui: use experiment registry
2015-01-29 19:59:44 +08:00
e7dac4ab43
master: experiment registry
2015-01-29 19:59:16 +08:00
26b1282b2b
gui/tools/DictSyncer: keep original data
2015-01-29 19:58:25 +08:00
cba0011431
language/db: default to no realtime results
2015-01-29 19:58:00 +08:00
939236a1b5
tools: fix logging config
2015-01-29 18:47:07 +08:00
Yann Sionneau
5ba7218cc1
Factorize argparser for debug level
2015-01-29 10:07:12 +08:00
906099c978
gui/rt_results: do not attempt to plot before receiving data
2015-01-28 16:28:13 +08:00
71c5115c11
gui: handle exit in explorer
2015-01-27 23:51:23 +08:00
db3114f79b
serve GUI and Glade file from master
2015-01-26 23:37:33 +08:00
8904d963d2
gui: add explorer window + rough prototype of control widgets defined with glade
2015-01-26 19:56:15 +08:00
82330b3c2a
gui: save layout
2015-01-23 19:00:09 +08:00
f983fdc985
file_db: support default data if file not present
2015-01-23 18:59:56 +08:00
9fb42e4952
doc: use sphinx-argparse
2015-01-23 00:52:13 +08:00
47aa634ab5
replace periodic schedule with timed schedule
2015-01-23 00:23:00 +08:00
569600b607
frontend/pdq2_client: fix entry point
2015-01-22 10:38:47 +08:00
Yann Sionneau
c8f2f4b245
Add missing __init__.py
2015-01-22 10:37:58 +08:00
0983862c03
pyon/store_file: add newline
2015-01-21 13:52:35 +08:00
56ea62b936
doc: fixes and add sync_struct docstrings
2015-01-19 19:20:14 +08:00
0c2e960c85
frontend: restore artiq_ prefix
2015-01-17 19:41:00 +08:00
3e22fe86b5
reorganize files as per discussion with Robert
2015-01-17 19:38:20 +08:00
6cc3a9d973
frontend/*: move to artiq.frontend, make entry_points
...
* solves the trouble of having to setup PATH and PYTHONPATH in a project
specific way and keep them changing
* works well with virtualenvs
* works under windows where the shebang is meaningless
* works if your python is not named "python3"
* can use "pip3 install --user --editable ."
* creates an egg-link in ~/.local/share/... pointing to $PWD
* generates the scripts and copies them to ~/.local/bin which is likely
already in your $PATH
* analogously under windows
* or call scripts as "python3 -m artiq.frontend.master"
2015-01-17 16:02:43 +08:00
77dab11746
gui/XYWindow: better bounds
2015-01-15 11:22:44 +08:00
5df8ffe08e
master: cleaner shutdown
2015-01-15 11:07:55 +08:00
95ee6a4951
gui: beginning of realtime plotting
2015-01-14 22:22:33 +08:00
33283feacb
sync_struct: pass mod to notify callback
2015-01-14 22:21:59 +08:00
070788a680
separate master modules
2015-01-14 12:16:49 +08:00
c0bdc92b18
master: broadcast realtime results
2015-01-14 11:37:08 +08:00
ebdd92c7c4
management/sync_struct: always publish with root notifier
2015-01-14 11:36:28 +08:00
4160d24abc
management/sync_struct: export process_mod function
2015-01-14 11:36:04 +08:00
8ed6aeb64a
collect realtime results in master
2015-01-13 19:12:19 +08:00
77a7e592cb
management/sync_struct/Notifier: use publish function instead of object
2015-01-13 18:40:59 +08:00
2029613c58
management/scheduler: cleanup pending tasks
2015-01-13 18:01:01 +08:00
f12e721974
sync_struct: support nested structures
2015-01-13 17:31:58 +08:00
893c18679f
management/worker: improve error reporting
2015-01-13 17:27:36 +08:00
891c0d12f2
refactor device/parameter management, immediate parameter updates, start introducing results
2015-01-12 18:51:23 +08:00
c938e3f4f0
language/context: remove spurious argument
2015-01-10 15:43:13 +08:00
06914bbaa3
Make arguments attributes, integrate with AutoContext
...
This makes them accessible to future "data analysis" methods.
2015-01-10 15:41:35 +08:00
Yann Sionneau
2ad063c377
Lda: sanity checks on attenuation value
...
- Plus use of dB unit
2015-01-10 00:27:21 +08:00
Yann Sionneau
d21211a473
lda: docstring style
2015-01-10 00:27:15 +08:00
be9f7550b5
master/gui/client: run arguments support
2015-01-07 21:37:07 +08:00
b63b46786e
management/file_import: invalidate linecache if needed
2015-01-07 18:14:52 +08:00
c11708972d
parameter database writeback
2015-01-07 17:50:05 +08:00
dhslichter
ff37cdc26c
Update driver.py
2015-01-05 17:40:37 -07:00
dhslichter
c971a6f1c6
Update driver.py
...
Fix 32dB limit bug
2015-01-05 15:52:47 -07:00
4c4da77cc8
gui: 'remove' buttons functionality
2015-01-05 19:52:58 +08:00
f9d4056ee9
scheduler: fix cancellations
2015-01-05 19:41:40 +08:00
7354117af2
pc_rpc: namespace cleanup
2015-01-05 16:10:16 +08:00
f9dd5682ee
pc_rpc: asyncio client
2015-01-05 16:07:12 +08:00
650baa9fc1
gui: factorize dict synchronization
2015-01-02 22:09:02 +08:00
f352e7f752
master/client: remove function parameter
2015-01-02 17:00:22 +08:00
3befafc4e0
master/gui: track last parameter changes
2015-01-02 15:28:45 +08:00
15b27a1d14
gui: parameter list update
2015-01-02 14:47:09 +08:00
7ada30e07a
dpdb: fix saves
2015-01-02 14:45:55 +08:00
d2a5dfa1ec
pc_rpc: multiple target support
2014-12-31 20:13:10 +08:00
9cd89a0c50
master: handle dpdb in master process
2014-12-31 17:41:22 +08:00
0aa450ad5d
pyon/store_file: do not erase file when encoding fails
2014-12-31 17:20:12 +08:00
cda394e0ce
gui: add basic parameters window
2014-12-31 11:11:38 +08:00
3566cd1ce0
gui: notebook and enable switch
2014-12-30 23:12:24 +08:00
2a60c7475e
gui: shorten name
2014-12-30 19:19:26 +08:00
1ada80cd6d
gui: add icon and app title
2014-12-30 18:40:19 +08:00
9de3a08676
gui: split scheduler window
2014-12-30 18:18:23 +08:00
6b283d78d3
master/client: periodic schedule monitoring
2014-12-29 18:44:50 +08:00
02f3781e65
management/scheduler: fix busywait bug
2014-12-29 13:32:11 +08:00
1fdad21f08
master/client: queue pubsub
2014-12-28 18:56:26 +08:00
f033810e04
management: add sync_struct
2014-12-27 23:27:35 +08:00
f7232fd3d1
support exceptions raised by RPCs
2014-12-20 21:33:22 +08:00
Yann Sionneau
e4897132ad
comm_serial.py: Use cross-platform pyserial
2014-12-20 10:19:06 +08:00
5d40c2431e
py2llvm: support type merge with empty list
2014-12-19 15:19:59 +08:00
a9b28dff36
transforms/lower_units: support empty list
2014-12-19 14:40:20 +08:00
5522378c1c
support units in lists
2014-12-19 14:34:23 +08:00
0d10ae7580
rpc: support all data types as parameters
2014-12-19 12:46:24 +08:00
44e7b99792
py2llvm/VNone: bugfixes
2014-12-19 12:43:13 +08:00
f31386d15d
py2llvm: len() support on lists
2014-12-18 11:13:50 +08:00
8af0301185
transforms/tools/value_to_ast: list support
2014-12-17 22:22:44 +08:00
f3b727b59d
py2llvm: replace array with list
2014-12-17 21:54:10 +08:00
6ca39f7415
management/scheduler: improve periodic timing precision
2014-12-11 15:57:41 +08:00
d315268ddb
move controllers/clients to frontend
2014-12-11 14:10:15 +08:00
c3953d85d5
master/client: periodic schedule support
2014-12-10 19:11:13 +08:00
347410afa2
master/client: queue display and cancellations
2014-12-10 13:04:18 +08:00
0dc4eb02ae
setup: install frontend tools, remove nosetest dependency, minor fixes
2014-12-10 12:13:10 +08:00
87fdad97ca
devices/lda: break off main function
2014-12-10 12:01:31 +08:00
08f2aa8503
management/scheduler: replace queue with transparent list + semaphore
2014-12-09 16:26:50 +08:00
059608d1fd
dds: fix phase modes
2014-12-09 13:50:33 +08:00
cb48dba29c
coredevice: fix external clock ref_period computation
2014-12-09 11:22:55 +08:00
597fe57fb3
pyon: unit support
2014-12-09 10:48:47 +08:00
e814da1ba3
master/client: use dpdb and file import
2014-12-08 19:22:02 +08:00
123656e2cd
fractions: fix comparison
2014-12-08 19:21:16 +08:00
fd28bfbb7c
artiq_run: reference module by filename
2014-12-08 16:11:31 +08:00
bfe980d458
py2llvm: distinguish between llvmlite Module and ModuleRef
2014-12-06 15:14:39 +08:00
159f632a65
switch to llvmlite
2014-12-05 17:05:43 +08:00
b93b969e2a
doc/pc_rpc: add warning about mutable types
2014-12-04 18:04:54 +08:00
4c7749bd01
pyon: partial JSON compatibility
2014-12-03 23:46:59 +08:00
fd8f3be946
pyon: pretty printing
2014-12-03 23:25:51 +08:00
2a95d27770
device and parameter database
2014-12-03 18:20:30 +08:00
a41009f92a
coredevice/comm_dummy: support clock-switching functions
2014-12-03 18:16:18 +08:00
5b8f34bae2
language/core/kernel: support return values
2014-12-03 17:21:26 +08:00
85b4d70ced
pyon: add file I/O functions
2014-12-03 17:18:43 +08:00
2a843ea436
language: replace AutoContext 'parameter' string with abstract attributes
...
This allows specifying default values for parameters, and other data.
2014-12-02 17:19:05 +08:00
83d3b97b23
coredevice/comm_serial: give up on garbage received after baudrate change
2014-12-02 16:04:41 +08:00
cad5933709
transforms/inline: do not writeback bool
2014-12-02 15:53:41 +08:00
649fedd656
coredevice/core: fix recover_underflow
2014-12-02 15:31:09 +08:00
fc690ead75
runtime: support clock switching
2014-12-02 14:06:32 +08:00
94218f785e
comm_serial: cleanup
2014-12-02 11:09:02 +08:00
Yann Sionneau
20adb57140
comm_serial: allow to use dynamic baudrate
2014-12-02 10:42:14 +08:00
Yann Sionneau
0c20445413
lda: allow to simulate without needing hidapi
...
This also fixes some old style string formating
2014-12-01 19:39:13 +08:00
57d633f48e
rtio: remove unnecessary attributes
2014-12-01 17:47:24 +08:00
cd587e4f12
rtio: do housekeeping in gateware
2014-12-01 17:32:36 +08:00
d50dbc0e73
coredevice/runtime_exceptions: update RTIO exception behaviour doc
2014-12-01 13:57:25 +08:00
901073acf3
asynchronous RTIO
2014-11-30 00:13:54 +08:00
9c41f98d70
lda_controller: fix memory leak
2014-11-29 11:19:03 +08:00
8f18d8d492
devices: use underscore in filenames to permit import
2014-11-29 11:03:52 +08:00
Yann Sionneau
81ab801fe4
lda: filter reports when waiting for command response
2014-11-29 10:50:41 +08:00
Yann Sionneau
075e540032
lda: separate simulation class
2014-11-29 10:50:12 +08:00
Yann Sionneau
b9e7fdb80e
lda: add docstring
2014-11-29 10:49:43 +08:00
6e219469fe
py2llvm: support operations between fractions and floats
2014-11-27 18:52:45 +08:00
dc27c2e3ad
lda: remove excessive verbosity
2014-11-25 19:59:53 +08:00
57e25c7af1
lda: minor fixes and refactoring
2014-11-25 19:56:28 +08:00
Yann Sionneau
744e7841c6
devices: initial LDA controller
2014-11-25 19:51:28 +08:00
a3f981726a
units: error checking
2014-11-22 16:56:51 -08:00
ab88c6d0b8
transforms/lower_units: fix bugs and add unit test
2014-11-21 18:08:14 -08:00
35d4f75b65
transforms: PEP8
2014-11-21 15:55:39 -08:00
1f92e19f2b
transforms/fold_constants: support decimal fractions
2014-11-21 15:51:20 -08:00
57cc6479c4
pyon: fraction support
2014-11-21 11:30:37 -08:00
64866a0f49
pc_rpc: add init magic string
2014-11-20 14:21:41 -08:00
914bdd95d5
runtime: use booleans in syscalls
2014-11-20 12:49:09 -08:00
dfd779c7c5
core: add underflow recovery function
2014-11-20 12:38:52 -08:00
1780759327
dds: phase control (mostly untested)
2014-11-20 12:32:56 -08:00
e01050b19a
transforms/inline: fix default values of positional args
2014-11-19 22:55:34 -08:00
b736c30cdb
coredevice/core: core_com -> comm
2014-11-19 17:44:06 -08:00
75df0ae94a
coredevice/gpio: replace set() with on()/off() to make API consistent
2014-11-19 12:33:33 -08:00
9098d10766
use .py extension on all Python files
2014-11-18 13:50:47 -08:00
8b552134a0
transforms/inline: keyword argument and default value support
2014-11-18 13:40:15 -08:00
abae5c6728
coredevice/dds: round FTW instead of flooring
2014-11-17 18:36:00 -07:00
cbc629bd8c
transforms: assume isinstance(expr, ast.Call) => isinstance(expr.func, ast.Name) after inline
2014-11-15 15:36:26 -07:00
e02ca0b404
transforms: quantize time before interleaving
2014-11-15 15:26:35 -07:00
ddc9c3423f
transforms/interleave: handle 'at'
2014-11-15 14:50:26 -07:00
b163c9f7ea
test: add optimization transform stack
2014-11-03 18:44:30 +08:00
9b93b0cedf
unparse: string-based API
2014-11-03 18:14:33 +08:00
e9e12adceb
transforms/inline: object attribute writeback
2014-11-03 18:04:01 +08:00
f54a2f93d2
remove kernel_attr (inline transform is now smart enough to autodetect)
2014-11-03 14:38:04 +08:00
a29d7ec6fe
transforms/remove_inter_assigns: fix handling of try blocks
2014-11-03 14:35:40 +08:00
171d56af54
transforms/remove_inter_assigns: prevent combinatorial explosion
2014-11-03 14:22:24 +08:00
fba72cc0a2
transforms/remove_inter_assign: support names and dependencies
2014-11-03 11:35:54 +08:00
217fe8251b
coredevice/core: optimize further
2014-10-31 23:44:07 +08:00
cf7848c698
transforms/inline: rewrite
2014-10-31 23:43:36 +08:00
b12fd1d566
transforms/remove_dead_code: bugfixes
2014-10-31 23:17:54 +08:00
97329b7fc9
transforms/inline: offload some work to remove_inter_assigns/remove_dead_code
2014-10-30 19:13:01 +08:00
1c0c0b691e
transforms/remove_inter_assigns: fix bug with array assignment
2014-10-29 20:29:37 +08:00
1e8c9837ac
transforms: add dead code removal
2014-10-29 20:23:58 +08:00
be94a8b07c
transforms/fold_constants: support comparisons
2014-10-29 18:46:06 +08:00
c82c631a1d
transforms/tools/eval_constant: fix int64 handling
2014-10-29 17:30:35 +08:00
70cc0d1766
transform: add intermediate assignment removal
2014-10-29 17:09:45 +08:00
f012151506
transforms/inline,unroll_loops: fix aliasing problems
2014-10-29 17:09:16 +08:00
97ce1d6c2d
transforms/inline: fix assign context on attributes
2014-10-29 16:03:20 +08:00
4cae5531ec
pc_rpc: server identification support
2014-10-28 15:45:56 +08:00
8d305e3117
doc: some precisions about controllers
2014-10-28 11:43:06 +08:00
2946fa58b8
pc_rpc: factor out asyncio server code
2014-10-27 20:37:37 +08:00
1e5b05d4ec
pdq2: fix commandline arguments
2014-10-27 20:34:33 +08:00
171ed70f2a
pc_rpc: remove WaitQuit (use e.g. Ctrl-C on the controller side instead)
2014-10-27 14:33:45 +08:00
934442bd07
pc_rpc: document
2014-10-27 13:50:32 +08:00
27fc19e415
pyon: add doc
2014-10-27 12:54:59 +08:00
ee225d5f0d
pc_rpc: raise RemoteError on non-existing method RPC attempt
2014-10-25 17:25:17 +08:00
489bcb3447
pyon: add bool support
2014-10-25 17:06:44 +08:00
6ac3c5d8ae
worker: use pyon
2014-10-25 16:31:34 +08:00
3f1391f7f2
devices: basic pdq2 controller/client
2014-10-25 11:38:42 +08:00
16170c9013
pc_rpc: numpy-compatible serialization
2014-10-25 11:35:21 +08:00
b13b77e42f
pc_rpc: factor WaitQuit code
2014-10-25 11:34:09 +08:00
513aa393b0
pc_rpc: avoid 'close' name conflict in client
2014-10-25 11:33:08 +08:00
f106b238eb
pc_rpc: report exception traceback
2014-10-25 11:31:54 +08:00
7a10cb8c32
mc: use pc_rpc
2014-10-23 18:48:03 +08:00
2aac43c6e5
management: add generic PC/PC RPC
2014-10-23 18:47:26 +08:00
85b6a7ca24
pdq2: small improvements based on ML feedback
2014-10-22 17:31:33 +08:00
b96249339d
doc: more precisions on RTIO error handling
2014-10-21 23:56:12 +08:00
97f9c9c34f
doc: add precisions on RTIO error handling
2014-10-21 23:46:14 +08:00
5105b88302
rtio: raise input overflow exception
2014-10-21 23:41:02 +08:00
9a14081031
rtio: add pileup count reporting
2014-10-21 23:14:01 +08:00
61a50ee53c
reorganize for devices/controllers
2014-10-19 23:51:49 +08:00
caab81974a
devices: add pdq2 (incomplete)
2014-10-17 00:13:09 +08:00
111bd3092c
devices/rtio_core: add LLRTIOOut
2014-10-17 00:12:53 +08:00
27d1a5ffb9
devices/dds_core: rename rtio_channel to rtio_switch
2014-10-16 23:36:28 +08:00
cbf915c2cc
devices/runtime: pretty-print
2014-10-14 19:49:39 +08:00
88ad4fbf23
pdq2: pep8
2014-10-14 17:02:25 +08:00
ea0773ccb5
pdq2: split CLI
2014-10-14 16:38:02 +08:00
de158e0aeb
artiq/devices: add pdq2.py
2014-10-14 16:00:52 +08:00
d22c30650d
rtio: add timestamp function
2014-10-14 15:54:10 +08:00
754a06c623
transforms/fold_constants: support BoolOp
2014-10-14 15:15:02 +08:00
b6ac4bdbf3
transforms/tools: support NameConstant
2014-10-14 15:14:39 +08:00
2449348f31
devices/runtime: allow 1ms for all initial DDS programming
2014-10-14 12:47:24 +08:00
594b3dda74
py2llvm/ast_body: pep8
2014-10-14 00:08:42 +08:00
a303293e8f
devices/dds_core: fix merging of back-to-back pulses of different frequencies
2014-10-13 23:58:32 +08:00
8a06f93eb2
transforms/inline: embed bool calls
2014-10-13 23:55:14 +08:00
d26a9d031b
py2llvm: support BoolOp
2014-10-13 23:54:56 +08:00
6b173d0a9a
py2llvm/base_types: fix not on bool
2014-10-13 19:49:29 +08:00
7c4450a963
time_to_cycles: round instead of flooring
2014-10-13 18:35:05 +08:00
0158de5ac9
devices/corecom_dummy: fix ref_period
2014-10-13 17:20:12 +08:00
74adb39157
devices/dds_core: add frequency_to_ftw and ftw_to_frequency
2014-10-13 17:05:35 +08:00
5b05a3f75b
transforms/inline: implement 'portable' decorator
2014-10-13 17:04:55 +08:00
482f4651ff
language/core: add 'portable' decorator
2014-10-13 17:04:32 +08:00
4361c7cb49
language/core: support cycles_to_time and time_to_cycles outside of kernel
2014-10-12 22:59:19 +08:00
9925568473
devices/runtime: add returns_twice attribute on __eh_setjmp (fixes exception crashes)
2014-10-11 12:59:39 +08:00
3ee9a87a00
transforms/lower_time: optimize time_to_cycles(cycles_to_time(x)) -> x
2014-10-11 12:04:14 +08:00
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