forked from M-Labs/artiq
300 lines
9.4 KiB
ReStructuredText
300 lines
9.4 KiB
ReStructuredText
.. Add new releases at the top to keep important stuff directly visible.
|
|
|
|
Release notes
|
|
=============
|
|
|
|
ARTIQ-4
|
|
-------
|
|
|
|
4.0
|
|
***
|
|
|
|
* RTIO outputs use a new architecture called Scalable Event Dispatcher (SED),
|
|
which allows building systems with large number of RTIO channels more
|
|
efficiently.
|
|
From the user perspective, collision errors become asynchronous, and non-
|
|
monotonic timestamps on any combination of channels are generally allowed
|
|
(instead of producing sequence errors).
|
|
RTIO inputs are not affected.
|
|
* The DDS channel number for the NIST CLOCK target has changed.
|
|
* The dashboard configuration files are now stored one-per-master, keyed by the
|
|
server address argument and the notify port.
|
|
* The master now has a ``--name`` argument. If given, the dashboard is labelled
|
|
with this name rather than the server address.
|
|
* ``artiq_flash -m/--adapter`` has been changed to ``artiq_flash -V/--variant``.
|
|
* ``kc705_dds`` has been renamed ``kc705``.
|
|
* the ``-H/--hw-adapter`` option of ``kc705`` has ben renamed ``-V/--variant``.
|
|
* SPI masters have been switched from misoc-spi to misoc-spi2. This affects
|
|
all out-of-tree RTIO core device drivers using those buses. See the various
|
|
commits on e.g. the ``ad5360`` driver for an example how to port from the old
|
|
to the new bus.
|
|
|
|
|
|
ARTIQ-3
|
|
-------
|
|
|
|
3.6
|
|
***
|
|
|
|
No further notes.
|
|
|
|
|
|
3.5
|
|
***
|
|
|
|
No further notes.
|
|
|
|
|
|
3.4
|
|
***
|
|
|
|
No further notes.
|
|
|
|
|
|
3.3
|
|
***
|
|
|
|
No further notes.
|
|
|
|
|
|
3.2
|
|
***
|
|
|
|
* To accommodate larger runtimes, the flash layout as changed. As a result, the
|
|
contents of the flash storage will be lost when upgrading. Set the values back
|
|
(IP, MAC address, startup kernel, etc.) after the upgrade.
|
|
|
|
|
|
3.1
|
|
***
|
|
|
|
No further notes.
|
|
|
|
|
|
3.0
|
|
***
|
|
|
|
* The ``--embed`` option of applets is replaced with the environment variable
|
|
``ARTIQ_APPLET_EMBED``. The GUI sets this enviroment variable itself and the
|
|
user simply needs to remove the ``--embed`` argument.
|
|
* ``EnvExperiment``'s ``prepare`` calls ``prepare`` for all its children.
|
|
* Dynamic ``__getattr__``'s returning RPC target methods are not supported anymore.
|
|
Controller driver classes must define all their methods intended for RPC as
|
|
members.
|
|
* Datasets requested by experiments are by default archived into their HDF5
|
|
output. If this behavior is undesirable, turn it off by passing
|
|
``archive=False`` to ``get_dataset``.
|
|
* ``seconds_to_mu`` and ``mu_to_seconds`` have become methods of the core
|
|
device driver (use e.g. ``self.core.seconds_to_mu()``).
|
|
* AD9858 DDSes and NIST QC1 hardware are no longer supported.
|
|
* The DDS class names and setup options have changed, this requires an update of
|
|
the device database.
|
|
* ``int(a, width=b)`` has been removed. Use ``int32(a)`` and ``int64(a)``.
|
|
* The KC705 gateware target has been renamed ``kc705_dds``.
|
|
* ``artiq.coredevice.comm_tcp`` has been renamed ``artiq.coredevice.comm_kernel``,
|
|
and ``Comm`` has been renamed ``CommKernel``.
|
|
* The "collision" and "busy" RTIO errors are reported through the log instead of
|
|
raising exceptions.
|
|
* Results are still saved when ``analyze`` raises an exception.
|
|
* ``LinearScan`` and ``RandomScan`` have been consolidated into RangeScan.
|
|
* The Pipistrello is no longer supported. For a low-cost ARTIQ setup, use either
|
|
ARTIQ 2.x with Pipistrello, or the future ARTIQ 4.x with Kasli. Note that the
|
|
Pipistrello board has also been discontinued by the manufacturer but its design
|
|
files are freely available.
|
|
* The device database is now generated by an executable Python script. To migrate
|
|
an existing database, add ``device_db = `` at the beginning, and replace any PYON
|
|
identifiers (``true``, ``null``, ...) with their Python equivalents
|
|
(``True``, ``None`` ...).
|
|
* Controllers are now named ``aqctl_XXX`` instead of ``XXX_controller``.
|
|
* In the device database, the ``comm`` device has been folded into the ``core`` device.
|
|
Move the "host" argument into the ``core`` device, and remove the ``comm`` device.
|
|
* The core device log now contains important information about events such as
|
|
RTIO collisions. A new controller ``aqctl_corelog`` must be running to forward
|
|
those logs to the master. See the example device databases to see how to
|
|
instantiate this controller. Using ``artiq_session`` ensures that a controller
|
|
manager is running simultaneously with the master.
|
|
* Experiments scheduled with the "flush pipeline" option now proceed when there
|
|
are lower-priority experiments in the pipeline. Only experiments at the current
|
|
(or higher) priority level are flushed.
|
|
* The PDQ(2/3) driver has been removed and is now being maintained out-of tree
|
|
at https://github.com/m-labs/pdq. All SPI/USB driver layers, Mediator,
|
|
CompoundPDQ and examples/documentation has been moved.
|
|
* The master now rotates log files at midnight, rather than based on log size.
|
|
* The results keys ``start_time`` and ``run_time`` are now stored as doubles of UNIX time,
|
|
rather than ints. The file names are still based on local time.
|
|
* Packages are no longer available for 32-bit Windows.
|
|
|
|
|
|
ARTIQ-2
|
|
-------
|
|
|
|
2.5
|
|
***
|
|
|
|
No further notes.
|
|
|
|
|
|
2.4
|
|
***
|
|
|
|
No further notes.
|
|
|
|
|
|
2.3
|
|
***
|
|
|
|
* When using conda, add the conda-forge channel before installing ARTIQ.
|
|
|
|
|
|
2.2
|
|
***
|
|
|
|
No further notes.
|
|
|
|
|
|
2.1
|
|
***
|
|
|
|
No further notes.
|
|
|
|
|
|
2.0
|
|
***
|
|
|
|
No further notes.
|
|
|
|
|
|
2.0rc2
|
|
******
|
|
|
|
No further notes.
|
|
|
|
|
|
2.0rc1
|
|
******
|
|
|
|
* The format of the influxdb pattern file is simplified. The procedure to
|
|
edit patterns is also changed to modifying the pattern file and calling:
|
|
``artiq_rpctool.py ::1 3248 call scan_patterns`` (or restarting the bridge)
|
|
The patterns can be converted to the new format using this code snippet::
|
|
|
|
from artiq.protocols import pyon
|
|
patterns = pyon.load_file("influxdb_patterns.pyon")
|
|
for p in patterns:
|
|
print(p)
|
|
|
|
* The "GUI" has been renamed the "dashboard".
|
|
* When flashing NIST boards, use "-m nist_qcX" or "-m nist_clock" instead of
|
|
just "-m qcX" or "-m clock" (#290).
|
|
* Applet command lines now use templates (e.g. $python) instead of formats
|
|
(e.g. {python}).
|
|
* On Windows, GUI applications no longer open a console. For debugging
|
|
purposes, the console messages can still be displayed by running the GUI
|
|
applications this way::
|
|
|
|
python3.5 -m artiq.frontend.artiq_browser
|
|
python3.5 -m artiq.frontend.artiq_dashboard
|
|
|
|
(you may need to replace python3.5 with python)
|
|
Please always include the console output when reporting a GUI crash.
|
|
* The result folders are formatted "%Y-%m-%d/%H instead of "%Y-%m-%d/%H-%M".
|
|
(i.e. grouping by day and then by hour, instead of by day and then by minute)
|
|
* The ``parent`` keyword argument of ``HasEnvironment`` (and ``EnvExperiment``)
|
|
has been replaced. Pass the parent as first argument instead.
|
|
* During experiment examination (and a fortiori repository scan), the values of
|
|
all arguments are set to ``None`` regardless of any default values supplied.
|
|
* In the dashboard's experiment windows, partial or full argument recomputation
|
|
takes into account the repository revision field.
|
|
* By default, ``NumberValue`` and ``Scannable`` infer the scale from the unit
|
|
for common units.
|
|
* By default, artiq_client keeps the current persist flag on the master.
|
|
* GUI state files for the browser and the dashboard are stores in "standard"
|
|
locations for each operating system. Those are
|
|
``~/.config/artiq/2/artiq_*.pyon`` on Linux and
|
|
``C:\Users\<username>\AppData\Local\m-labs\artiq\2\artiq_*.pyon`` on
|
|
Windows 7.
|
|
* The position of the time cursor is kept across experiments and RTIO resets
|
|
are manual and explicit (inter-experiment seamless handover).
|
|
* All integers manipulated by kernels are numpy integers (numpy.int32,
|
|
numpy.int64). If you pass an integer as a RPC argument, the target function
|
|
receives a numpy type.
|
|
|
|
|
|
ARTIQ-1
|
|
-------
|
|
|
|
1.3
|
|
***
|
|
|
|
No further notes.
|
|
|
|
|
|
1.2
|
|
***
|
|
|
|
No further notes.
|
|
|
|
|
|
1.1
|
|
***
|
|
|
|
* TCA6424A.set converts the "outputs" value to little-endian before programming
|
|
it into the registers.
|
|
|
|
|
|
1.0
|
|
***
|
|
|
|
No further notes.
|
|
|
|
|
|
1.0rc4
|
|
******
|
|
|
|
* setattr_argument and setattr_device add their key to kernel_invariants.
|
|
|
|
|
|
1.0rc3
|
|
******
|
|
|
|
* The HDF5 format has changed.
|
|
|
|
* The datasets are located in the HDF5 subgroup ``datasets``.
|
|
* Datasets are now stored without additional type conversions and annotations
|
|
from ARTIQ, trusting that h5py maps and converts types between HDF5 and
|
|
python/numpy "as expected".
|
|
|
|
* NumberValue now returns an integer if ``ndecimals`` = 0, ``scale`` = 1 and
|
|
``step`` is integer.
|
|
|
|
|
|
1.0rc2
|
|
******
|
|
|
|
* The CPU speed in the pipistrello gateware has been reduced from 83 1/3 MHz to
|
|
75 MHz. This will reduce the achievable sustained pulse rate and latency
|
|
accordingly. ISE was intermittently failing to meet timing (#341).
|
|
* set_dataset in broadcast mode no longer returns a Notifier. Mutating datasets
|
|
should be done with mutate_dataset instead (#345).
|
|
|
|
|
|
1.0rc1
|
|
******
|
|
|
|
* Experiments (your code) should use ``from artiq.experiment import *``
|
|
(and not ``from artiq import *`` as previously)
|
|
* Core device flash storage has moved due to increased runtime size.
|
|
This requires reflashing the runtime and the flash storage filesystem image
|
|
or erase and rewrite its entries.
|
|
* ``RTIOCollisionError`` has been renamed to ``RTIOCollision``
|
|
* the new API for DDS batches is::
|
|
|
|
with self.core_dds.batch:
|
|
...
|
|
|
|
with ``core_dds`` a device of type ``artiq.coredevice.dds.CoreDDS``.
|
|
The dds_bus device should not be used anymore.
|
|
* LinearScan now supports scanning from high to low. Accordingly,
|
|
its arguments ``min/max`` have been renamed to ``start/stop`` respectively.
|
|
Same for RandomScan (even though there direction matters little).
|