comedilib-0.13.0 is now available for download from the
comedi.org
web-site, and also from GitHub.
comedilib-0.13.0 released 2025-06-16.
Download:
https://www.comedi.org/download/comedilib-0.13.0.tar.gz
or:
https://github.com/Linux-Comedi/comedilib/releases/download/r0_13_0/comedilib-0.13.0.tar.gz
sha1sum:
def532545640a94965d4a27b7bf6ec8598c14258 *comedilib-0.13.0.tar.gz
sha256sum:
9529c8ef90dd3f92c0be25b161eb2c836cc0d51f2ccb46c91d183501ee2bbc49
*comedilib-0.13.0.tar.gz
*Main changes since version 0.12.0*
[ See
https://github.com/Linux-Comedi/comedilib/releases/tag/r0_13_0 for
Markdown-formatted release notes ]
# Comedilib release 0.13.0
## Library changes
### New functions
* Added new functions `comedi_lsampl_from_phys()` and
`comedi_lsampl_to_phys()`. These are like the existing
`comedi_sampl_from_phys()` and `comedi_sampl_to_phys()` functions, but
for 32-bit sample values (`lsampl_t`) instead of 16-bit sample values
(`sampl_t`).
### Other library changes
* Changed `comedi_range *` parameters to `const comedi_range *` in the
`rng` parameter of `comedi_to_phys()`, `comedi_from_phys()`,
`comedi_sampl_to_phys()`, and `comedi_sampl_from_phys()`.
`comedi_get_range()` still returns a `comedi_range *` value for
backwards compatibility, but the `comedi_range` value pointed to by
the return value should not be modified by the caller.
* Changed the type of the `src` parameter of `comedi_sampl_to_phys()`
from `sampl_t *` to `const sampl_t *`, and changed the type of the
`src` parameter of `comedi_sampl_from_phys()` from `double *` to
`const double *`.
* Renamed internal functions with external linkage to use the `_comedi_`
prefix to minimize namespace pollution in the `libcomedi.a` static
library.
* The `comedi_dio_bitfield2()` and `comedi_dio_bitfield()` functions now
work better when the subdevice does not support the `INSN_BITS`
instruction. Previously, the workaround would attempt to access 32
channels from the specified base channel onwards using the
`comedi_dio_read()` and `comedi_dio_write()` functions even for
channel numbers that are out of range, and would always propagate any
error from those functions to the caller. Now it will propagate any
error for the specified base channel, but not for any other channels
that are out of range.
## Language bindings
### C++
* Minor, internal change to `range()` method to change the type of the
`cRange` variable from `comedi_range *` to `const comedi_range *`.
This holds the return value of the method which already has this type.
### Ruby
* The Ruby bindings now ignore the `_N_NAMES_MAX_PLUS_1` constant
defined by the *comedi.i* SWIG file. This avoids a warning from Ruby
scripts that use the `comedi` module.
## Demos
### New demos
* New demo **ext_trig** for boards using external trigger for scan.
(Contributed by Bernd Harries, based on the **ledclock** demo.)
### Other changes to demos
* Bug fix for **sigio** demo: corrected length of `chanlist[]` array to
avoid out-of-bounds access.
* Ruby demos have been moved from *swig/ruby/demo/* to *demo/ruby/*
for consistency.
* Ruby demos change `require 'common'` to `require './common'` for
compatibility with Ruby 1.9.x, where the current directory is no
longer part of the `LOAD_PATH`.
* The "shebang" lines of the Python demos have been changed to run
**python3** instead of **python**.
* In the **mmap.py** Python demo, the call to the `array.fromstring()`
method has been replaced with `array.frombytes()` because
`array.fromstring()` was deprecated in Python 3.2, and removed in
Python 3.9.
## Programs
### **comedi_config**
* Fix some "maybe uninitialized" warnings from the C compiler.
### **comedi_test**
* **comedi_test** now tries to restore the subdevice's buffer size to the
original size it had before the test if that was greater than 0 and
less than the maximum size. If the original size was 0 and the maximum
size is at least 4096, it tries to set the buffer size to 10% of the
maximum size, rounding up to a multiple of 4096. During the test, it
now only tries to set the buffer to maximum size if it succeeded to
get the maximum size and it is greater than 0.
* Corrected the test for `mmap()` failure.
## Documentation
* Renamed *funcref* to *funcref.txt* for consistency with the other
*\*.txt* files that are used to build *\*.xml* files.
* Document old functions `comedi_get_rangetype()`,
`comedi_sampl_from_phys()` and `comedi_sampl_to_phys()` functions.
* Converted URLs from *http* to *https* where possible. (This has not
been done for the board documentation in *drivers.txt* and
*drivers-linux.txt* because their contents are extracted from source
code header comments.)
* Updated *drivers.txt* containing board documentation from the
"out-of-tree" Comedi kernel module sources, based on the sources up to
date 2025-06-02 in the [Git
repository](
https://github.com/Linux-Comedi/comedi). The "vmk80xx"
driver has been added to support the Velleman K8055/VM110 and
K8061/VM140 USB boards. The device comments for the "pcm3724" and
"adl_pci7250" drivers have been updated.
* Updated *drivers-linux.txt* containing board documentation for the
version of Comedi contained within the Linux kernel sources, based on
Linux kernel version 5.12. This is mostly conversion of URLs from
*http* to *https* and a few typo corrections.
* Removed excess whitespace from first line of pre-formatted text for
commands and program listings. Also, fix a few typos.
* Add `id="examples"` to the "Further examples" section so that its
generated html file gets the name "examples.html" instead of a
meaningless, autogenerated file name.
* Set the width of the *acq-seq.gif* image to 100%.
## Configure / make
### Configure option changes
* Added `--disable-swig` configure option to disable all SWIG language
bindings; that is, the Python and Ruby bindings.
* The Ruby interpreter can now be specified using the environment
variable `RUBY`.
* The Ruby bindings are now enabled by default. They can be disabled
with the `--disable-ruby-bindings` configure option.
* Added `--disable-doc` configure option to disable building and
installation of the documentation normally found in the distributed
source tar-file. This option is mostly for the use of normal users
building Comedilib from sources cloned from the Git repository who do
not wish to install the large dependencies for building the Comedilib
manual and the Comedilib API man-pages. (The distributed source
tar-file contains pre-built documentation.)
* "Maintainer mode" is now disabled by default. Casual users do not need
it, especially when building sources from the distributed tar-files.
It can be enabled with the `--enable-maintainer-mode` configure
option. (Developers who modify the Makefiles, etc., may want to do
that, or they can re-run *./autogen.sh* in the source directory, and
then re-run *./config.state* in the build directory, as required.)
### Other configure / make changes
* *
configure.ac* now uses `AX_RUBY_EXT` from the [GNU Autoconf
Archive](
http://savannah.gnu.org/projects/autoconf-archive/) to detect
Ruby.
* *
configure.ac* now uses `AX_PKG_SWIG` from the GNU Autoconf Archive to
check that SWIG 2.0.0 or later is available, and adds extra checks for
building the Python and Ruby language bindings.
* *
configure.ac* now uses `AC_PREREQ([2.69])` and adds `[1.14]` to the
`AM_INIT_AUTOMAKE()` options.
* *
configure.ac* has fewer complaints from Autoreconf 2.70. The only
thing it complains about is the use of the `AC_PROG_CC_C99` macro,
which we are keeping because of our Autoconf 2.69 prerequisite.
* When configured to use separate source and build directories, some
built files that were forced into the source directory because they
are part of the distributed source tar-file are no longer done so;
they are built in the build directory instead. This includes YACC and
LEX output, the built documentation, and parts of the Ruby extension.
The only exception is for files generated by Automake when the
"maintainer-mode" configuration option is enabled.
* Building the Ruby language bindings no longer requires the Comedilib
headers and C libraries to be pre-installed. It now uses the headers
and C libraries from the current build.
* Fixed warnings about renamed classes when building the Ruby language
bindings using SWIG.
* Fixed warnings about renaming unsigned consts when building the Python
language bindings using SWIG.
* *autogen.sh* now passes the `-f` option to **autoreconf**.
* Improved PDF generation by the **fop** back end. It now includes the
*acq-seq.gif* image. Overall, the PDF output with the **fop** back end
is still lousy because we really need a bunch of stylesheet changes to
make it look reasonable. The *comedilib.pdf* file in the distributed
source tar-file is built using the **dblatex** back end.
* The disposition of the *bindings.xml* file by *doc/Makefile.am* has
been corrected. It was incorrectly listed amongst the built sources
and would be removed by the `make maintainer-clean` command, but in
fact it is one of the static files that should not be removed by this
command.
## Other changes
* The *usbdux\** firmware and hotplug scripts have been removed. The
firmware files and their source code is included in the [Linux
Firmware](
https://gitlab.com/kernel-firmware/linux-firmware) project.
The hotplug scripts were obsolete because the kernel drivers for the
*usbdux\** devices now use the firmware request mechanisms provided by
the Linux kernel and operating system.
* The *
comedilib.spec.in* file has been updated, based on the F40
version of
[comedilib.spec](
https://github.com/rpmsphere/spec/blob/master/c/comedilib.spec)
from the [RPM Sphere](
https://rpmsphere.github.io/) repository.
Enjoy! And apologies for the long wait since the previous release.
--
-=( Ian Abbott <
abb...@mev.co.uk> || MEV Ltd. is a company )=-
-=( registered in England & Wales. Regd. number: 02862268. )=-
-=( Regd. addr.: S11 & 12 Building 67, Europa Business Park, )=-
-=( Bird Hall Lane, STOCKPORT, SK3 0XA, UK. ||
www.mev.co.uk )=-