Skip to content

Releases: m5stack/M5Utility

0.2.0

Choose a tag to compare

@GOB52 GOB52 released this 14 Jul 05:44

Added

  • Add non-ESP32 Arduino core portability (SAMD / RP2040 / Renesas RA (UNO R4) / ESP8266); library.properties now declares architectures=* (#2)
  • Add platform_detect.hpp centralizing build-environment detection, overridable via M5UTILITY_TIME_SOURCE / M5UTILITY_HAS_USABLE_CHRONO (#2)
  • Add a clear one-line #error on toolchains without the C++ standard library (e.g. AVR cores)
  • Add build CI for non-ESP32 Arduino cores / ESP-IDF native (idf.py) / Arduino (espressif v2, v3 and M5Stack packages) with an AVR expected-error check
  • Add supported environments section to README.md

Changed

  • Change native unit tests to run without M5Unified and SDL2
  • Remove the pcregrep dependency from Doxygen document generation

Fixed

  • Fix char sign extension in murmurhash3: _mmh3 values for strings containing non-ASCII (>= 0x80) bytes now match the reference implementation (ASCII-only strings are unaffected)
  • Fix undefined behavior when SHA1::update() is called with empty input (nullptr, 0)

追加

  • 非 ESP32 Arduino コア対応 (SAMD / RP2040 / Renesas RA (UNO R4) / ESP8266) を追加、library.propertiesarchitectures=* に (#2)
  • ビルド環境判定を集約する platform_detect.hpp を追加 (M5UTILITY_TIME_SOURCE / M5UTILITY_HAS_USABLE_CHRONO で上書き可能) (#2)
  • C++ 標準ライブラリを持たないツールチェーン (AVR コア等) で明確な 1 行 #error を出すガードを追加
  • 非 ESP32 Arduino コア / ESP-IDF native (idf.py) / Arduino (espressif v2, v3・M5Stack パッケージ) のビルド CI と AVR 期待エラーチェックを追加
  • README.md に対応環境セクションを追加

変更

  • native ユニットテストを M5Unified / SDL2 なしで実行できるように変更
  • Doxygen ドキュメント生成の pcregrep 依存を削除

修正

  • murmurhash3char 符号拡張を修正。非 ASCII (0x80 以上) バイトを含む文字列の _mmh3 ハッシュ値は参照実装準拠の値に変わります (ASCII のみの文字列は不変)
  • SHA1::update() を空入力 (nullptr, 0) で呼び出した際の未定義動作を修正

0.1.1

Choose a tag to compare

@GOB52 GOB52 released this 06 Jul 06:42

Changed

  • Remove the targets restriction in idf_component.yml so the ESP-IDF component resolves on every ESP32-family target (#1)

変更

  • idf_component.ymltargets 制限を撤廃し、全 ESP32 系ターゲットで ESP-IDF コンポーネントが解決できるように変更 (#1)

0.1.0

Choose a tag to compare

@GOB52 GOB52 released this 03 Jun 15:23

Added

  • Add ESP-IDF native build (idf.py) support with CMakeLists.txt and idf_component.yml (targets: esp32 / esp32s3 / esp32c3 / esp32c6 / esp32h2 / esp32p4)

Fixed

  • Fix newlib-nano printf format compatibility in library_log.hpp / library_log.cpp

追加

  • ESP-IDF ネイティブビルド (idf.py) サポートを追加 (CMakeLists.txt / idf_component.yml、対応 target: esp32 / esp32s3 / esp32c3 / esp32c6 / esp32h2 / esp32p4)

修正

  • library_log.hpp / library_log.cpp の newlib-nano printf フォーマット互換性を修正

0.0.13

Choose a tag to compare

@GOB52 GOB52 released this 01 Jun 15:36

Added

  • Add M5NanoH2 (ESP32-H2) build environment

Fixed

  • Fix C++23 deprecated literal operator warning in murmurhash3.hpp
  • Fix M5NanoC6 identity macro (ARDUINO_M5STACK_NANOC6ARDUINO_M5STACK_NANO_C6) and maximum_size typo

追加

  • M5NanoH2 (ESP32-H2) のビルド環境を追加

修正

  • murmurhash3.hpp の C++23 deprecated literal operator 警告を修正
  • M5NanoC6 の識別マクロ (ARDUINO_M5STACK_NANOC6ARDUINO_M5STACK_NANO_C6) と maximum_size のタイポを修正

0.0.12

Choose a tag to compare

@GOB52 GOB52 released this 25 Mar 08:16

Changed

  • Unified U16/S16 into generic EndianInt<T, DataIsLittle> template and added 32/64/128-bit endian-aware integer types

Fixes

  • Fixed operator< bug in endian-aware integer comparisons

変更

  • U16/S16 を汎用テンプレート EndianInt<T, DataIsLittle> に統合し、32/64/128 ビットのエンディアン対応整数型を追加

修正

  • エンディアン対応整数型の operator< バグを修正

0.0.11

Choose a tag to compare

@GOB52 GOB52 released this 24 Mar 08:39

Fixes

  • Fixed trimRight / trimLeft being swapped (each was performing the other's operation)
  • Fixed undefined behavior in BitSegment with signed types
  • Fixed UB in std::swap specialization for circular_buffer
  • Fixed VLA usage in formatString()
  • Fixed byteswap to use portable implementation with __builtin_bswap optimization and __int128 support

修正

  • trimRight / trimLeft の実装が入れ替わっていたバグを修正
  • 符号付き型での BitSegment の未定義動作を修正
  • circular_bufferstd::swap 特殊化における UB を修正
  • formatString() での VLA 使用を修正
  • byteswap をポータブル実装に修正(__builtin_bswap 最適化、__int128 サポート)

0.0.10

Choose a tag to compare

@GOB52 GOB52 released this 18 Feb 07:49

Added

  • Add m5::stl::clamp (including a compatibility implementation for pre-C++17)
  • Add Base64 decode APIs (decode_base64, decodeBase64, decodeBase64URL)
  • Add intelhex installation in CI before PlatformIO runs

Fixed

  • Fix 3DES guards for nullptr inputs (out/in) and in_len == 0
  • Improve byteswap type constraints (better support for enum/integer types, including __int128)
  • Adjust test/workflow conditions to improve CI stability

追加

  • m5::stl::clamp を追加(C++17未満向け互換実装含む)
  • Base64 デコードAPIを追加(decode_base64 / decodeBase64 / decodeBase64URL
  • CIで intelhex インストールを追加(PlatformIO実行前)

修正

  • 3DES処理で out / innullptrin_len==0 のガードを修正
  • byteswap の型制約を改善(enum/整数系、__int128 系への対応強化)
  • テスト/ワークフロー条件を調整(CI安定化)

0.0.9

Choose a tag to compare

@GOB52 GOB52 released this 05 Dec 03:09

Added

  • base64
  • SHA-1
  • DES

追加

  • base64
  • SHA-1
  • DES

0.0.8

Choose a tag to compare

@GOB52 GOB52 released this 04 Nov 06:32

Added

  • uint_least_for_bits

Fixed

  • LFSR

追加

  • uint_least_for_bits

修正

  • LFSR

0.0.7

Choose a tag to compare

@GOB52 GOB52 released this 28 Oct 06:20

Added

  • byteswap
  • LFSR

追加

  • byteswap
  • LFSR