CHANGELOG
This file contains the list of changes made to the JLS project.
0.9.4
2024 May 10
Fixed unicode filename support on Windows #12
0.9.3
2024 Mar 7
Added “export” python subcommand.
0.9.2
2024 Feb 14
Fixed index error in file repair operation.
Fixed FSR summary reconstruction on truncation #10
0.9.1
2023 Nov 13
Bumped rev to fix publish to pypi.
0.9.0
2023 Nov 13
Added jls_copy with “jls copy” command and pyjls “copy” entry point.
Publish release assets including “jls.exe”.
0.8.2
2023 Oct 25
Added file truncation repair for never closed files.
Added support for python 3.12.
0.8.1
2023 Sep 18
Improved python binding Reader.fsr_statistics documentation #9.
Fixed occasional missing last byte in jls_rd_fsr for 1-bit signals.
0.8.0
2023 Sep 16
Added file truncation repair.
Added jls_raw_truncate and jls_raw_backend.
Refactored reader and writer into new core to enable repairer.
Added jls_twr_flags_get/set.
Added JLS_TWR_FLAG_DROP_ON_OVERFLOW which drops samples on overflow.
Added jls_wr_fsr_omit_data and jls_twr_fsr_omit_data.
Automatically omit constant 1, 4, & 8 bit entry FSR data chunks.
Modified default signal_def settings for improved performance.
Added jls_dt_str for pretty-printing the data type.
Added u1 and u4 FSR data type support to performance tool.
Fixed jls_rd_fsr out of bounds memory access.
Added read_fuzzer tool to jls example.
0.7.3
2023 Jul 24
Added “noexcept” to python callbacks. Cython 3.0 deprecates implicit noexcept.
0.7.2
2023 Jun 14
Fixed build for Raspberry Pi.
Added JLS_OPTIMIZE_CRC cmake option.
0.7.1
2023 Jun 7
Added Reader.signal_lookup.
Improved documentation.
Added Read The Docs integration.
Improved python “export” subcommand to specify “–signal” by name.
Added python subcommand “plot”.
Improved build process, migrated to GitHub Actions.
Bumped minimum python version from 3.8 to 3.9.
0.7.0
2023 May 31
Fixed incorrect write timestamp stride in FSR index/summary entries. Any recording over 5.77 hours was incorrect.
Improved threaded writer.
Removed jls_wr_flush during close due to UI performance problems.
Release the GIL on some python Writer operations.
Reduced buffer size from 100,000,000 B to 64 MB.
Save string null termination byte for annotations and user_data.
Increased thread priority on Windows.
Do not quit until all messages are processed.
Added jls executable to examples.
Improved reader logging and error handling.
0.6.3
2023 May 16
Added support for building a shared library. Initialize build subdir with “cmake -DBUILD_SHARED_LIBS=ON ..”
0.6.2
2023 Apr 28
Improved UTC read processing.
Added “–utc” option to info entry point.
Fixed incorrect NaNs in summary on write.
Added “export” pyjls entry point.
0.6.1
2023 Apr 27
Added FSR support for missing and duplicate data.
Added FSR support for unaligned u1 and u4 data.
Improved log messages.
0.6.0
2023 Apr 26
Fixed JLS to handle non-zero sample_id for first FSR data sample.
Added pyjls.Reader.timestamp_to_sample_id and sample_id_to_timestamp.
0.5.3
2023 Apr 19
Fixed build warnings for fn() declarations.
0.5.2
2023 Mar 30
Reduced default log level to WARNING.
0.5.1
2023 Mar 16
Added zero length check to jls_wr_fsr_data.
0.5.0
2023 Mar 9
Added support for data_type strings (not just enum integers).
Modified python reader bindings to release GIL.
Migrated to time64 representation for all API calls. Use utc_to_jls and jls_to_utc to convert as needed to/from
python timestamps.Added data_type_as_enum and data_type_as_str conversion functions.
Improved exception messages.
0.4.3
2022 Nov 30
Changed windows dependency from deprecated pypiwin32 to pywin32.
Bumped numpy dependencies.
Added build system requirements for pip.
0.4.2
2022 Mar 17
Fixed pyjls build for Raspberry Pi OS 64-bit.
0.4.1
2022 Mar 7
Fixed build for Linux and macOS.
0.4.0
2022 Mar 5
Added support for additional data types (was only f32):
Signed Integer: i4, i8, i16, i24, i32, i64
Unsigned Integer: u1, u4, u8, u16, u24, u32, u64
Float: f64
Fixed point signed & unsigned integers.
Renamed jls_rd_fsr_f32_statistics to jls_rd_fsr_statistics, which now always returns statistics as double (f64).
Improved documentation.
0.3.4
2021 Oct 28
Added all version fields to pyjls module.
Fixed writer not correctly serializing null and empty strings #6.
0.3.3
2021 Jul 7
Added reader sample_id bounds checks to FSR functions.
Cached jls_rd_fsr_length results.
0.3.2
2021 Jul 7
Fixed incorrect statistics computation when using summaries.
Added example/jls_read.c.
Connected example/generate.py arguments to work correctly.
Fixed documentation for jls_rd_fsr_f32_statistics().
Added GitHub action.
0.3.1
2021 Apr 13
Fixed y annotation argument order.
Added horizontal marker annotation.
Fixed Python API to automatically convert to/from UTC python timestamps.
Fixed reader seek when contains multiple annotations at same timestamp.
0.3.0
2021 Apr 8
Yanked this release, use 0.3.1
NOT BACKWARDS COMPATIBLE with 0.2.6 and earlier.
Modified annotation to contain optional y-axis position. API change.
Improved file format consistency and improved format.h.
Added UTC track writer and reader for FSR signals.
Added INDEX and SUMMARY writer for ANNOTATION and UTC tracks.
Added reader seek to timestamp for ANNOTATION and UTC using INDEX & SUMMARY.
0.2.6
2021 Mar 18
Fixed uninitialized variables in POSIX backend (thanks Valgrind!).
Fixed memory leaks (thanks Valgrind!).
0.2.5
2021 Mar 18
Added 32-bit ARMv7 support (Raspberry Pi OS).
Added 64-bit ARM support for Apple silicon (M1).
0.2.4
2021 Mar 16
Added support for aarch64 (Raspberry Pi 4). Untested on mac M1.
Fixed POSIX time.
0.2.3
2021 Mar 10
Fixed sdist to include native files for pyjls cython build.
Added CREDITS.html.
Included credits, license & readme with pyjls source distribution.
0.2.2
2021 Mar 9
Fixed build using Clang and AppleClang.
0.2.1
2021 Mar 8
Fixed timeout on close when bursting data.
Added annotate_stress example.
Added flush.
0.2.0
2021 Mar 8
Added group_id parameter to annotation.
Fixed example/generate.py length argument.
Updated numpy dependency to 1.20.
Fixed pyjls console_script.
Changed logging interface and connected native to python logging.
0.1.0
2021 Mar 1
Initial public release.
0.0.1
2021 Feb 5
Initial documentation.