diff --git a/ReleaseNotes_4.7.md b/ReleaseNotes_4.7.md index e7241a87b..f0bde453b 100644 --- a/ReleaseNotes_4.7.md +++ b/ReleaseNotes_4.7.md @@ -1,4 +1,4 @@ -# HAMLIB 4.7 - Release Notes +# HAMLIB 4.7 - Release Notes (WIP) 2025-12-01(?) This release brings new equipment support, bug fixes/code cleanups, and some changes to ease transition to 5.0 @@ -13,8 +13,9 @@ changes to ease transition to 5.0 ## Bug Fixes & Code cleanups - Codebase conforms to ISO/IEC 9899:2024 (-std=c23) - Reduce gripes from cppcheck and other static analyzers -- Functions rig_get_conf(), rot_get_conf() and amp_get_conf() are deprecated and - will be removed in 5.0. Use xyz_get_conf2() instead. See issue #924 +- Functions `rig_get_conf()`, `rot_get_conf()` and `amp_get_conf()` are deprecated and + will be removed in 5.0. Use `..._get_conf2()` instead. See issue + [#924](https://github.com/Hamlib/Hamlib/issues/924). - (TBD) ## Build/install Changes @@ -30,9 +31,12 @@ with 4.7, making the transition much easier. The Application Programming Interfa does not change. ### Storage restructuring -HAMLIB 5.0 will move many data items/structures out of rig_struct into separate, -calloc'ed buffers. This changes many of the methods for accessing HAMLIB internal -data. It also removes some obsolete items, and restructures/resizes others. +HAMLIB 5.0 will move many data items/structures out of rig_struct into separate heap +buffers. See issues [#487](https://github.com/Hanlib/Hamlib/issues/487), +[#1445](https://github.com/Hamlib/Hamlib/issues/1445), and +[#1420](https://github.com/Hamlib/Hamlib/issues/1420). This changes many of +the methods for accessing HAMLIB internal data. It also removes some obsolete +items, and restructures/resizes others. ### Include files Along with the moves to separate storage, the definitions of these data structures diff --git a/ReleaseNotes_5.0.md b/ReleaseNotes_5.0.md index 526b67517..04e72579e 100644 --- a/ReleaseNotes_5.0.md +++ b/ReleaseNotes_5.0.md @@ -1,4 +1,4 @@ -# HAMLIB 5.0 - Release Notes (DRAFT) +# HAMLIB 5.0 - Release Notes (DRAFT) 2026-12-01(target) This major release includes a restructuring of HAMLIB internal storage, forcing changes to the Application Binary Interface(ABI). @@ -9,7 +9,24 @@ changes to the Application Binary Interface(ABI). ## Build changes - No more K&R C - C compiler needs at least c11 capability. - Functions rig_get_conf(), rot_get_conf() and amp_get_conf() have been removed. - See issue #924. -- shortfreq_t changed to int? + See [issue #924](https://github.com/Hamlib/Hamlib/issues/924). +- shortfreq_t changed to int32? ## Application changes +Many of the internal HAMLIB data structures have been moved out of the rig_struct +area into their own heap buffers, and are addressed by pointers. Any application that +wishes to access these structure will have to add a new `#include` statement and +use a macro defined in that `.h` file to obtain the address. + + +| Structure | Old reference | Include file | New Pointer | +| --------- | ---------------- | ----------------- | ------------ | +| Rig state | `rig->state` | `` | `HAMLIB_STATE(rig)` | +| Rig CAT port | `rig->state.rigport` | `` | `HAMLIB_RIGPORT(rig)` | +| Rig PTT port | `rig->state.pttport` | `` | `HAMLIB_PTTPORT(rig)` | +| Rig DCD port | `rig->state.dcdport` | `` | `HAMLIB_DCDPORT(rig)` | +| Amplifier state | `amp->state` | `` | `HAMLIB_AMPSTATE(amp)` | +| Amplifier port | `amp->state.ampport` | `` | `HAMLIB_AMPPORT(amp)` | +| Rotator state | `rot->state` | `` | `HAMLIB_ROTSTATE(rot)` | +| Rotator port | `rot->state.rotport` | `` | `HAMLIB_ROTPORT(rot)` | +| Rotator port2 | `rot->state.rotport2` | `` | `HAMLIB_ROTPORT2(rot)` |