Commit Graph

186 Commits

Author SHA1 Message Date
David Nadlinger
ae999db8f6 compiler: Revert function call lifetime tracking fix
This reverts commits f8d1506922
and cf19c9512d.

While the commit just fixes a clear typo in the implementation,
it turns out the original algorithm isn't flexible enough to
capture functions that transitively return references to
long-lived data. For instance, while cache_get() is special-cased
in the compiler to be recognised as returning a value of Global()
lifetime, a function just forwarding to it (as seen in the
embedding tests) isn't anymore.

A separate issue is also that this makes implementing functions
that take lists and return references to global data in user code
impossible, which central parts of the Oxford codebase rely on.

Just reverting for now to unblock master; a fix is easily designed,
but needs testing.
2020-07-30 16:40:39 +01:00
David Nadlinger
cf19c9512d RELEASE_NOTES: Add entry for compiler lifetime tracking fix
I contemplated putting this in the "Breaking changes" section,
as it might break user code that has avoided being hit by
memory corruption from the use-after free by chance (even
though it was always an accepts-illegal bug).
2020-07-28 00:54:20 +01:00
Charles Baynham
9b44ec7bc6 parameters: Allow forcing a NumberValue to return a float
Signed-off-by: Charles Baynham <charles.baynham@npl.co.uk>
2020-07-27 12:25:51 +08:00
David Nadlinger
3f0cf6e683 runtime: Stop kernel CPU before restarting comms CPU on panic
Before, the system would enter a boot loop when a panic occurred
while the kernel CPU was active (and panic_reset == 1), as
kernel::start() for the startup kernel would panic.
2020-07-01 17:29:05 +08:00
David Nadlinger
f36692638c dashboard: Add "Quick Open" dialog for experiments on global shortcut
This is similar to functionality in Sublime Text, VS Code, etc.
2020-06-26 10:11:33 +08:00
David Nadlinger
7955b63b00 master: Always write results to HDF5 once run stage is reached
Previously, a significant risk of losing experimental results would
be associated with long-running experiments, as any stray exceptions
while run()ing the experiment – for instance, due to infrequent
network glitches or hardware reliability issue – would cause no
HDF5 file to be written. This was especially troublesome as long
experiments would suffer from a higher probability of unanticipated
failures, while at the same time being more costly to re-take in
terms of wall-clock time.

Unanticipated uncaught exceptions like that were enough of an issue
that several Oxford codebases had come up with their own half-baked
mitigation strategies, from swallowing all exceptions in run() by
convention, to always broadcasting all results to uniquely named
datasets such that the partial results could be recovered and written
to HDF5 by manually run recovery experiments.

This commit addresses the problem at its source, changing the worker
behaviour such that an HDF5 file is always written as soon as run()
starts.
2020-06-18 17:47:26 +01:00
9822b88d9b
ad9910: fix asf range (#1450)
* ad9910: fix asf range

The ASF is a 14-bit word. The highest possible value is 0x3fff, not
0x3ffe. `int(round(1.0 * 0x3fff)) == 0x3fff`.

I don't remember and understand why this was 0x3ffe since the beginning.
0x3fff was already used as a default in `set_mu()`

Signed-off-by: Robert Jördens <rj@quartiq.de>

* RELEASE_NOTES: ad9910 asf scale change

Co-authored-by: David Nadlinger <code@klickverbot.at>
2020-05-29 11:13:26 +02:00
Charles Baynham
5db2afc7a7 dashboard: Release notes for #1453 2020-05-26 18:16:35 +08:00
2538840756
Coredevice Input Validation (#1447)
* Input validation and masking of SI -> mu conversions (close #1446)

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

* Update RELEASE_NOTES

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

Co-authored-by: Robert Jördens <rj@quartiq.de>
2020-05-17 15:09:11 +02:00
b3b6cb8efe
ad53xx improvements (#1445)
* ad53xx: voltage_to_mu() validation & documentation (closes #1443, #1444)
The voltage input (float) is checked for validity. If we need more
speed, we may want to check the DAC-code for over/underflow instead.

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

* ad53xx documentation: voltage_to_mu is only valid for 16-bit DACs

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

* AD53xx: add voltage_to_mu method (closes #1341)

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

* ad53xx: improve voltage_to_mu performance
Interger comparison is faster than floating point math.

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

* AD53xx: voltage_to_mu method now uses attribute values

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

* Fixup RELEASE_NOTES.rst

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

* ad53xx: documentation improvements

voltage_to_mu return value
14-bit DAC support

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>
2020-05-08 19:23:43 +02:00
ea79ba4622 ttl_serdes: detect edges on short pulses
Edges on pulses shorter than the RTIO period were missed because the
reference sample and the last sample of the serdes word are the same.

This change enables detection of edges on pulses as short as the
serdes UI (and shorter as long as the pulse still hits a serdes sample
aperture).

In any RTIO period, only the leading event corresponding to the first
edge with slope according to sensitivity is registerd. If the channel is
sensitive to both rising and falling edges and if the pulse is contained
within an RTIO period, or if it is sensitive only to one edge slope and
there are multiple pulses in an RTIO period, only the leading event is
seen. Thus this possibility of lost events is still there. Only the
conditions under which loss occurs are reduced.

In testing with the kasli-ptb6 variant, this also improves resource
usage (a couple hundred LUT) and timing (0.1 ns WNS).
2020-04-13 13:21:03 +02:00
b7292f0195
RELEASE_NOTES: fix rst formatting further 2019-11-15 15:59:24 +08:00
cf6a7f243f
RELEASE_NOTES: fix rst formatting 2019-11-15 15:56:17 +08:00
57979da59a RELEASE_NOTES: add ARTIQ-6 section 2019-11-15 13:49:54 +08:00
eefc6ae80d update release notes 2019-11-15 13:07:16 +08:00
e65303cfe9 RELEASE_NOTES: sipyco 2019-11-11 12:24:50 +08:00
c96de7454d remove artiq_devtool 2019-10-30 21:27:24 +08:00
98caaebade consistent use of 'class name' terminology to select a class within an experiment file. Closes #1348 2019-09-09 15:16:33 +08:00
8fc5ce902f firmware: let kasli obtain default hardware_addr from i2c_eeprom 2019-08-17 09:15:26 +08:00
1a898c423a aqctl_corelog: filter log messages. Closes #1316 2019-06-13 18:17:52 +08:00
836dc9b927 RELEASE_NOTES: remove '5.0' section (#1326) 2019-06-13 18:15:50 +08:00
2ada5227f0 update documentation after moving controllers out-of-tree (#887) 2019-04-20 00:21:54 +08:00
8a5789d616 RELEASE_NOTES: mention methods to set experiment pipeline/priority/flush defaults 2019-03-12 10:54:15 +01:00
b219f8b5c7 artiq_flash: autodetect variant 2019-03-08 19:47:24 +08:00
David Nadlinger
bf84226c7d language: Support appending to datasets 2019-02-09 20:50:38 +00:00
David Nadlinger
ef934ad958 Add test/release notes for command-less controllers
See eaa1b44b00 for the actual change.
2019-02-07 21:51:15 +00:00
David Nadlinger
05f6dafb2c RELEASE_NOTES: Mention new edge counter RTIO PHY 2019-01-15 10:55:07 +00:00
David Nadlinger
6c52359e59 coredevice: Add _mu suffix to AD991x ref_time arguments
GitHub: Fixes #1243.
2019-01-12 17:34:35 +00:00
Drew
f2c1d32e54 frontend: add --version flag to cmd line args (#1181) 2019-01-12 09:47:47 +08:00
bf50dcf76d conda: use misoc release 2018-11-20 17:15:53 +08:00
8f9858be4c ad9914: remove automatic continuous phase compensation (like Urukul) 2018-11-19 22:00:20 +08:00
David Nadlinger
abad916383 RELEASE_NOTES: Fix typo 2018-11-03 20:33:19 +08:00
David Nadlinger
8b5df9c151 RELEASE_NOTES: TTL timeline cursor API changes 2018-11-03 20:33:19 +08:00
7f11411127 RELEASE_NOTES: 3.7 2018-11-03 20:17:28 +08:00
9793632282 enviromnment: rename 'save' in set_dataset to 'archive'. Closes #1171 2018-10-21 12:08:34 +08:00
c172ec6de9 artiq_flash: target Kasli by default 2018-08-13 12:13:21 +08:00
b10d3ee4b4 make RTIO clock switch optional and simplify
Kasli no longer has an internal RTIO clock.
Switching clocks dynamically is no longer supported.
2018-05-18 17:41:34 +08:00
3027951dd8 integrate new AD9914 driver
moninj, analyzer, docs, examples, tests.
2018-05-13 23:29:35 +08:00
28ccca412a doc: automatic artiq_flash proxy 2018-04-26 10:50:23 +08:00
d6a63ad165 RELEASE_NOTES: formatting 2018-03-25 11:19:25 +08:00
22557294ac RELEASE_NOTES: ad53xx, zotino 2018-03-24 15:20:04 +01:00
9eb0218389 RELEASE_NOTES: add sections for major releases 2018-03-22 13:26:28 +08:00
06f24c6aa2 RELEASE_NOTES: update 2018-03-22 11:46:41 +08:00
1329e1a23e RELEASE_NOTES: add note about spi2 port 2018-03-01 11:19:18 +01:00
be704b1533 RELEASE_NOTES: mention short options for artiq_flash 2018-02-22 01:32:12 +08:00
3231d8b235 RELEASE_NOTES: 3.3 2018-01-28 00:18:01 +08:00
25f3feeda8 refactor targets 2018-01-22 18:25:10 +08:00
5a79c9bc09 RELEASE_NOTES: add SED 2018-01-11 11:38:06 +08:00
bd47a0371f RELEASE_NOTES: add 3.2 entry 2017-12-27 10:52:41 +08:00
cbd69287a7 artiq_flash: select Sayma standalone variant by default 2017-12-22 16:54:06 +08:00
e5d8314aa7 RELEASE_NOTES: 3.1 2017-12-07 13:23:11 +08:00
9a1adfe65c RELEASE_NOTES: master friendly name, dashboard config one-per-master 2017-11-28 08:56:04 +08:00
5803ac9998 gateware: add Zotino SPI to NIST CLOCK target 2017-10-23 15:04:30 +08:00
84f27330e3 RELEASE_NOTES: 2.5 2017-10-02 12:17:25 +08:00
4bafdecd47 RELEASE_NOTES: formatting 2017-09-30 01:10:10 +08:00
c7cdd2016a doc: no more win32 packages 2017-09-30 00:30:22 +08:00
e7594b540e RELEASE_NOTES: add 4.0 section 2017-09-30 00:29:54 +08:00
6d72329d45 RELEASE_NOTES: 3.0 2017-09-29 16:37:36 +08:00
7085c1cccb RELEASE_NOTES: clarify time/date 2017-08-03 13:56:15 +02:00
dd6c48fed2 Merge branch 'master' into epoch_time 2017-08-03 12:55:01 +02:00
cc289dd3a0 master: store run_time and start_time as doubles 2017-08-03 10:41:57 +01:00
810bb69989 master: rotate logs at midnight, rather than on log size 2017-08-03 00:31:04 +01:00
471605ec1e pdq: move to https://github.com/m-labs/pdq 2017-07-19 17:35:28 +02:00
e3588c9e68 RELEASE_NOTES: 2.4 2017-06-22 00:38:49 +08:00
c399bec8da RELEASE_NOTES: pipistrello discontinued by manufacturer 2017-06-20 06:18:34 +02:00
a20f5392a9 add pdq2→pdq rename to release notes 2017-06-03 18:36:41 +08:00
cf746cee5b fix documentation formatting problems 2017-05-22 19:08:20 +08:00
e4a631a3d7 scheduler: consider the pipeline flushed if everything has a lower priority than us. Closes #640 2017-05-22 18:43:59 +08:00
6bdb76e9ea core device logging controller WIP (#691) 2017-05-22 16:48:00 +08:00
5ccca74a3f fold comm device into core device 2017-05-22 15:45:45 +08:00
3ed70afaa1 Use commandline prefix for controllers
This keeps them better organized and consistent with the artiq_* naming scheme.
Tab completion from aqctl_ also lists all the controllers installed on a machine.
2017-05-22 00:22:10 +08:00
cd757c0f16 generate device database from executable python file 2017-05-18 23:14:55 +08:00
c44f2da9fd RELEASE_NOTES: formatting 2017-05-18 23:14:55 +08:00
9ab63920e0 Remove Pipistrello support
Closes #658
Closes #381
2017-05-15 17:17:44 +08:00
99196986c0 conda: use conda-forge and depend on pyqtgraph 0.10.0 (#704) 2017-04-13 00:55:16 +08:00
7ec14f26c2 examples: fix after introduction of RangeScan 2017-03-31 16:54:07 +08:00
07c71bf020 language,gui: combine LinearScan and RandomScan into RangeScan. Closes #679 2017-03-31 16:48:39 +08:00
432c6b99e2 master: still save results when analyze fails. Closes #684 2017-03-27 17:57:02 +08:00
b74d6fb9ba make collision and busy asynchronous errors, and simplify CPU/gateware handshake for output errors and reads 2017-03-27 16:32:23 +08:00
7d6ebabc1b reorganize core device communication code 2017-02-27 18:37:30 +08:00
efd8eadf2c RELEASE_NOTES: 2.2 2017-02-02 18:09:19 +08:00
62274a6c0d RELEASE_NOTES: targets.kc705_dds 2017-01-18 15:28:56 -06:00
ac792ec52b RELEASE_NOTES: 2.1 2016-12-12 13:12:18 +08:00
d0a55e5c9b RELEASE_NOTES: int(a, width=b) removal, use int32/64 2016-11-24 14:32:51 +01:00
ef971ef8ba RELEASE_NOTES: update 2016-11-21 23:51:39 +08:00
69d96b0158 master: archive input datasets. Closes #587 2016-10-18 17:11:07 +08:00
fdadf550fb RELEASE_NOTES: 2.0 2016-09-24 18:53:36 +02:00
e4d1d0a309 RELEASE_NOTES: 2.0rc2 2016-09-14 21:54:32 -04:00
c7c8ad126f pc_rpc: raise AttributeError immediately for nonexistent RPC methods. Closes #534 2016-09-14 11:22:07 +08:00
73bbe2ae66 RELEASE_NOTES: clarify 2016-09-07 20:21:10 +08:00
5fbcdacec7 environment: call prepare for children by default, closes #545 2016-09-07 20:20:20 +08:00
549e09e06b applets: simplify command lines 2016-09-04 23:32:09 +08:00
9fd9235e44 RELEASE_NOTES: 2.0rc1 2016-09-04 16:34:58 +02:00
019fe25594 RELEASE_NOTES: None arguments during experiment examination (#545) 2016-09-02 08:20:49 +08:00
5b8b6a9e34 RELEASE_NOTES: 1.3 2016-08-11 20:51:08 +02:00
a9e944f917 RELEASE_NOTES: add item about numpy ints 2016-08-03 14:17:38 +08:00
a7be325ebf RELEASE_NOTES: inter-experiment seamless handover 2016-07-19 23:21:11 +08:00
c0a3996ce8 RELEASE_NOTES: remove outdated item 2016-07-19 23:20:03 +08:00
26b5981e2f RELEASE_NOTES: add gui state file locations 2016-07-18 17:03:57 +02:00
40a6e87152 RELEASE_NOTES: 1.2 2016-07-15 11:14:06 +08:00