[comedi] [ANNOUNCE] comedilib 0.13.0
Ian Abbott <[email protected]> Mon, 16 Jun 2025 13:33:52 +0100
| Newsgroups | gmane.linux.comedi |
|---|---|
| Organization | MEV Ltd. |
| Message-ID | <[email protected]> |
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 <[email protected]> || 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 )=- -- You received this message because you are subscribed to the Google Groups "Comedi: Linux Control and Measurement Device Interface" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/comedi_list/319b47c9-2cb9-4b37-a3f6-c8f3173d42a7%40mev.co.uk.