Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package lttoolbox for openSUSE:Factory 
checked in at 2026-05-17 18:56:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lttoolbox (Old)
 and      /work/SRC/openSUSE:Factory/.lttoolbox.new.1966 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "lttoolbox"

Sun May 17 18:56:45 2026 rev:9 rq:1353554 version:3.8.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/lttoolbox/lttoolbox.changes      2025-08-15 
21:53:56.136798365 +0200
+++ /work/SRC/openSUSE:Factory/.lttoolbox.new.1966/lttoolbox.changes    
2026-05-17 18:57:00.204740178 +0200
@@ -1,0 +2,7 @@
+Sat May 16 00:14:25 UTC 2026 - Jan Engelhardt <[email protected]>
+
+- Update to release 3.8.3
+  * Drop stray \t in ATT printing
+  * Allow C2Y, C23, C++26 compilation modes
+
+-------------------------------------------------------------------

Old:
----
  v3.8.2.tar.gz

New:
----
  v3.8.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ lttoolbox.spec ++++++
--- /var/tmp/diff_new_pack.wB0UBm/_old  2026-05-17 18:57:00.892768248 +0200
+++ /var/tmp/diff_new_pack.wB0UBm/_new  2026-05-17 18:57:00.892768248 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package lttoolbox
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,14 +18,15 @@
 
 Name:           lttoolbox
 %define lname   liblttoolbox3
-Version:        3.8.2
+Version:        3.8.3
 Release:        0
 Summary:        Toolbox for lexical processing and morphological analysis
 License:        GPL-2.0-or-later
 Group:          Productivity/Scientific/Other
 URL:            https://apertium.org/
 Source:         https://github.com/apertium/lttoolbox/archive/v%version.tar.gz
-BuildRequires:  cmake
+BuildRequires:  cmake-full
+BuildRequires:  boost-devel
 BuildRequires:  gcc-c++
 BuildRequires:  libtool
 BuildRequires:  utfcpp-devel

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.wB0UBm/_old  2026-05-17 18:57:00.932769880 +0200
+++ /var/tmp/diff_new_pack.wB0UBm/_new  2026-05-17 18:57:00.936770043 +0200
@@ -1,5 +1,5 @@
-mtime: 1755216500
-commit: e7c4e7f11ff6dc5f215fdfe8a303bf852a5c239f80cdc483b46d6ff5f149144e
+mtime: 1778956576
+commit: e81c23fe3ac91b9e7b97049657abb945b352888f16c298be1eb319845b0fb76f
 url: https://src.opensuse.org/jengelh/lttoolbox
 revision: master
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-05-16 20:36:16.000000000 +0200
@@ -0,0 +1 @@
+.osc

++++++ v3.8.2.tar.gz -> v3.8.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lttoolbox-3.8.2/.github/workflows/build.yaml 
new/lttoolbox-3.8.3/.github/workflows/build.yaml
--- old/lttoolbox-3.8.2/.github/workflows/build.yaml    2025-08-04 
20:29:18.000000000 +0200
+++ new/lttoolbox-3.8.3/.github/workflows/build.yaml    2026-05-07 
19:02:21.000000000 +0200
@@ -10,7 +10,7 @@
     - name: dependencies
       run: |
            sudo apt-get -qy update
-           sudo apt-get -qfy install --no-install-recommends build-essential 
cmake pkg-config libutfcpp-dev libxml2-dev libxml2-utils python3-dev 
python3-setuptools swig
+           sudo apt-get -qfy install --no-install-recommends build-essential 
cmake pkg-config libboost-dev libutfcpp-dev libxml2-dev libxml2-utils 
python3-dev python3-setuptools swig
     - name: configure
       run: cmake -DENABLE_PYTHON_BINDINGS=ON .
     - name: build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lttoolbox-3.8.2/CMakeLists.txt 
new/lttoolbox-3.8.3/CMakeLists.txt
--- old/lttoolbox-3.8.2/CMakeLists.txt  2025-08-04 20:29:18.000000000 +0200
+++ new/lttoolbox-3.8.3/CMakeLists.txt  2026-05-07 19:02:21.000000000 +0200
@@ -1,7 +1,7 @@
-cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.20 FATAL_ERROR)
 cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
 project(lttoolbox
-       VERSION 3.8.2
+       VERSION 3.8.3
        LANGUAGES CXX C
        )
 set(VERSION ${PROJECT_VERSION})
@@ -57,7 +57,7 @@
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_FLAGS_COMMON} 
-fvisibility-inlines-hidden")
 
        # Enable latest possible C standard
-       foreach(flag "-std=c2x" "-std=c11" "-std=c1x" "-std=c99")
+       foreach(flag "-std=c2y" "-std=c23" "-std=c2x" "-std=c11" "-std=c1x" 
"-std=c99")
                string(REGEX REPLACE "[^a-z0-9]" "-" _flag ${flag})
                CHECK_C_COMPILER_FLAG(${flag} COMPILER_SUPPORTS_${_flag})
                if(COMPILER_SUPPORTS_${_flag})
@@ -67,7 +67,7 @@
        endforeach()
 
        # Require latest possible C++ standard
-       foreach(flag "-std=c++23" "-std=c++2b"  "-std=c++20" "-std=c++2a" 
"-std=c++17")
+       foreach(flag "-std=c++26" "-std=c++2c" "-std=c++23" "-std=c++2b" 
"-std=c++20" "-std=c++2a" "-std=c++17")
                string(REGEX REPLACE "[^a-z0-9]" "-" _flag ${flag})
                CHECK_CXX_COMPILER_FLAG(${flag} COMPILER_SUPPORTS_${_flag})
                if(COMPILER_SUPPORTS_${_flag})
@@ -84,8 +84,8 @@
 # Generate pkg-config file
 set(prefix      ${CMAKE_INSTALL_PREFIX})
 set(exec_prefix "\${prefix}")
-set(libdir      "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
-set(includedir  "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
+cmake_path(APPEND libdir "\${exec_prefix}" "${CMAKE_INSTALL_LIBDIR}")
+cmake_path(APPEND includedir "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
 configure_file(lttoolbox.pc.in lttoolbox.pc @ONLY)
 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/lttoolbox.pc" DESTINATION 
"${CMAKE_INSTALL_LIBDIR}/pkgconfig/")
 
@@ -137,11 +137,16 @@
 
 # ICU
 find_package(ICU COMPONENTS i18n io uc REQUIRED)
+include_directories(${ICU_INCLUDE_DIRS})
 
 # utf8cpp / utfcpp
 find_path(UTFCPP_INCLUDE_DIRS utf8.h PATH_SUFFIXES utf8cpp utfcpp utf8 
REQUIRED)
 include_directories(${UTFCPP_INCLUDE_DIRS})
 
+# Boost
+find_package(Boost 1.58.0 REQUIRED)
+include_directories(${Boost_INCLUDE_DIRS})
+
 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
 
 if(BUILD_TESTING)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lttoolbox-3.8.2/lttoolbox/att_compiler.cc 
new/lttoolbox-3.8.3/lttoolbox/att_compiler.cc
--- old/lttoolbox-3.8.2/lttoolbox/att_compiler.cc       2025-08-04 
20:29:18.000000000 +0200
+++ new/lttoolbox-3.8.3/lttoolbox/att_compiler.cc       2026-05-07 
19:02:21.000000000 +0200
@@ -19,9 +19,9 @@
 #include <lttoolbox/alphabet.h>
 #include <lttoolbox/transducer.h>
 #include <lttoolbox/compression.h>
-#include <lttoolbox/string_utils.h>
 #include <lttoolbox/file_utils.h>
 #include <algorithm>
+#include <limits>
 #include <stack>
 #include <unicode/uchar.h>
 #include <unicode/ustring.h>
@@ -141,6 +141,53 @@
   }
 }
 
+/*
+ * ICU number parsing does a lot of locale handling and this tends to
+ * dominate the runtime of lt-comp. Since we always force the locale
+ * to be C.UTF-8, we can make stronger assumptions leading to a
+ * ~2000x speedup for stoi and ~500x for stod relative to StringUtils.
+ * - DGS 2025-08-29
+ */
+
+int fast_stoi(UString s) {
+  int ret = 0;
+  for (size_t i = 0; i < s.size(); i++) {
+    if (s[i] < '0' || s[i] > '9') throw std::invalid_argument("bad int");
+    ret *= 10;
+    ret += (s[i] - '0');
+  }
+  return ret;
+}
+
+double fast_stod(UString s) {
+  if (s.size() == 0) throw std::invalid_argument("empty string");
+  double sign = 1;
+  size_t i = 0;
+  if (s[i] == '-') {
+    i++;
+    sign = -1;
+  }
+  if (i == s.size()) throw std::invalid_argument("no number");
+  if (i + 3 == s.size() && s[i] == 'i' && s[i+1] == 'n' && s[i+2] == 'f') {
+    return sign * std::numeric_limits<double>::infinity();
+  }
+  double ret = 0;
+  for (; i < s.size(); i++) {
+    if (s[i] == '.') break;
+    if (s[i] < '0' || s[i] > '9') throw std::invalid_argument("bad digit");
+    ret *= 10;
+    ret += (s[i] - '0');
+  }
+  i++;
+  double mul = 0.1;
+  for (; i < s.size(); i++) {
+    if (s[i] < '0' || s[i] > '9') throw std::invalid_argument("bad digit");
+    ret += (s[i] - '0') * mul;
+    mul *= 0.1;
+  }
+  return sign * ret;
+}
+
 void
 AttCompiler::parse(std::string const &file_name, bool read_rl)
 {
@@ -208,7 +255,7 @@
     }
 
     try {
-      from = StringUtils::stoi(tokens[0]) + state_id_offset;
+      from = fast_stoi(tokens[0]) + state_id_offset;
     } catch (const std::invalid_argument& e) {
       std::cerr << "Error: invalid source state in file '" << file_name << "' 
on line " << line_number << "." << std::endl;
       exit(EXIT_FAILURE);
@@ -233,7 +280,7 @@
       if (tokens.size() > 1)
       {
        try {
-         weight = StringUtils::stod(tokens[1]);
+    weight = fast_stod(tokens[1]);
        } catch (const std::invalid_argument& e) {
          std::cerr << "Error: invalid weight in file '" << file_name << "' on 
line " << line_number << "." << std::endl;
          exit(EXIT_FAILURE);
@@ -248,7 +295,7 @@
     else
     {
       try {
-       to = StringUtils::stoi(tokens[1]) + state_id_offset;
+        to = fast_stoi(tokens[1]) + state_id_offset;
       } catch (const std::invalid_argument& e) {
        std::cerr << "Error: invalid target state in file '" << file_name << "' 
on line " << line_number << "." << std::endl;
        exit(EXIT_FAILURE);
@@ -269,7 +316,7 @@
       if(tokens.size() > 4)
       {
        try {
-         weight = StringUtils::stod(tokens[4]);
+    weight = fast_stod(tokens[4]);
        } catch (const std::invalid_argument& e) {
          std::cerr << "Error: invalid weight in file '" << file_name << "' on 
line " << line_number << "." << std::endl;
          exit(EXIT_FAILURE);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lttoolbox-3.8.2/lttoolbox/compression.h 
new/lttoolbox-3.8.3/lttoolbox/compression.h
--- old/lttoolbox-3.8.2/lttoolbox/compression.h 2025-08-04 20:29:18.000000000 
+0200
+++ new/lttoolbox-3.8.3/lttoolbox/compression.h 2026-05-07 19:02:21.000000000 
+0200
@@ -23,6 +23,7 @@
 #include <stdexcept>
 #include <lttoolbox/ustring.h>
 #include <lttoolbox/my_stdio.h>
+#include <boost/endian/conversion.hpp>
 
 // Global lttoolbox features
 constexpr char HEADER_LTTOOLBOX[4]{'L', 'T', 'T', 'B'};
@@ -53,24 +54,15 @@
 }
 
 template<typename Stream, typename Value>
-inline auto write_u64_le(Stream& out, const Value& value) {
+inline auto write_u64_be(Stream& out, const Value& value) {
   uint64_t v = static_cast<uint64_t>(value);
-  v =
-    ((v & 0xFF) << 56) |
-    ((v & 0xFF00) << 40) |
-    ((v & 0xFF0000) << 24) |
-    ((v & 0xFF000000) << 8) |
-    ((v & 0xFF00000000) >> 8) |
-    ((v & 0xFF0000000000) >> 24) |
-    ((v & 0xFF000000000000) >> 40) |
-    ((v & 0xFF00000000000000) >> 56)
-  ;
+  boost::endian::native_to_big_inplace(v);
   return write_u64(out, v);
 }
 
 template<typename Stream>
-inline auto write_le(Stream& out, uint64_t value) {
-  return write_u64_le(out, value);
+inline auto write_be(Stream& out, uint64_t value) {
+  return write_u64_be(out, value);
 }
 
 
@@ -89,34 +81,25 @@
 }
 
 template<typename Stream>
-inline auto read_u64_le(Stream& in) {
+inline auto read_u64_be(Stream& in) {
   uint64_t v = read_u64(in);
-  v =
-    ((v & 0xFF00000000000000) >> 56) |
-    ((v & 0xFF000000000000) >> 40) |
-    ((v & 0xFF0000000000) >> 24) |
-    ((v & 0xFF00000000) >> 8) |
-    ((v & 0xFF000000) << 8) |
-    ((v & 0xFF0000) << 24) |
-    ((v & 0xFF00) << 40) |
-    ((v & 0xFF) << 56)
-  ;
+  boost::endian::big_to_native_inplace(v);
   return v;
 }
 
 template<typename Stream>
-inline auto read_le(Stream& in, uint64_t) {
-  return read_u64_le(in);
+inline auto read_be(Stream& in, uint64_t) {
+  return read_u64_be(in);
 }
 
 template<typename Value = void>
-inline auto read_le(FILE *in) {
-  return read_le(in, Value{});
+inline auto read_be(FILE *in) {
+  return read_be(in, Value{});
 }
 
 template<typename Value = void>
-inline auto read_le(std::istream& in) {
-  return read_le(in, Value{});
+inline auto read_be(std::istream& in) {
+  return read_be(in, Value{});
 }
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lttoolbox-3.8.2/lttoolbox/file_utils.cc 
new/lttoolbox-3.8.3/lttoolbox/file_utils.cc
--- old/lttoolbox-3.8.2/lttoolbox/file_utils.cc 2025-08-04 20:29:18.000000000 
+0200
+++ new/lttoolbox-3.8.3/lttoolbox/file_utils.cc 2026-05-07 19:02:21.000000000 
+0200
@@ -72,7 +72,7 @@
 {
   fwrite_unlocked(HEADER_LTTOOLBOX, 1, 4, output);
   uint64_t features = 0;
-  write_le(output, features);
+  write_be(output, features);
 
   Compression::string_write(letters, output);
   alpha.write(output);
@@ -101,7 +101,7 @@
     char header[4]{};
     fread_unlocked(header, 1, 4, input);
     if (strncmp(header, HEADER_LTTOOLBOX, 4) == 0) {
-      auto features = read_le<uint64_t>(input);
+      auto features = read_be<uint64_t>(input);
       if (features >= LTF_UNKNOWN) {
         throw std::runtime_error("FST has features that are unknown to this 
version of lttoolbox - upgrade!");
       }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lttoolbox-3.8.2/lttoolbox/lt-proc.1 
new/lttoolbox-3.8.3/lttoolbox/lt-proc.1
--- old/lttoolbox-3.8.2/lttoolbox/lt-proc.1     2025-08-04 20:29:18.000000000 
+0200
+++ new/lttoolbox-3.8.3/lttoolbox/lt-proc.1     2026-05-07 19:02:21.000000000 
+0200
@@ -103,6 +103,10 @@
 .Fl p ,
 with surface forms, and if the lexical form is not found in the bilingual
 dictionary, it outputs the surface form of the word.
+.It Fl O , Fl Fl surf-bilingual-keep
+As with
+.Fl o ,
+but also outputs the surface form before the readings.
 .It Fl c , Fl Fl case-sensitive
 Use the literal case of the incoming characters
 .It Fl d , Fl Fl debugged-gen
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lttoolbox-3.8.2/lttoolbox/tmx_compiler.cc 
new/lttoolbox-3.8.3/lttoolbox/tmx_compiler.cc
--- old/lttoolbox-3.8.2/lttoolbox/tmx_compiler.cc       2025-08-04 
20:29:18.000000000 +0200
+++ new/lttoolbox-3.8.3/lttoolbox/tmx_compiler.cc       2026-05-07 
19:02:21.000000000 +0200
@@ -417,7 +417,7 @@
 {
   fwrite_unlocked(HEADER_LTTOOLBOX, 1, 4, output);
   uint64_t features = 0;
-  write_le(output, features);
+  write_be(output, features);
 
   // letters (empty to keep the file format)
   Compression::multibyte_write(0, output);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lttoolbox-3.8.2/lttoolbox/trans_exe.cc 
new/lttoolbox-3.8.3/lttoolbox/trans_exe.cc
--- old/lttoolbox-3.8.2/lttoolbox/trans_exe.cc  2025-08-04 20:29:18.000000000 
+0200
+++ new/lttoolbox-3.8.3/lttoolbox/trans_exe.cc  2026-05-07 19:02:21.000000000 
+0200
@@ -73,7 +73,7 @@
       char header[4]{};
       fread_unlocked(header, 1, 4, input);
       if (strncmp(header, HEADER_TRANSDUCER, 4) == 0) {
-          auto features = read_le<uint64_t>(input);
+          auto features = read_be<uint64_t>(input);
           if (features >= TDF_UNKNOWN) {
               throw std::runtime_error("Transducer has features that are 
unknown to this version of lttoolbox - upgrade!");
           }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lttoolbox-3.8.2/lttoolbox/transducer.cc 
new/lttoolbox-3.8.3/lttoolbox/transducer.cc
--- old/lttoolbox-3.8.2/lttoolbox/transducer.cc 2025-08-04 20:29:18.000000000 
+0200
+++ new/lttoolbox-3.8.3/lttoolbox/transducer.cc 2026-05-07 19:02:21.000000000 
+0200
@@ -535,7 +535,7 @@
   if (write_weights) {
       features |= TDF_WEIGHTS;
   }
-  write_le(output, features);
+  write_be(output, features);
 
   Compression::multibyte_write(initial, output);
   Compression::multibyte_write(finals.size(), output);
@@ -590,7 +590,7 @@
       char header[4]{};
       fread_unlocked(header, 1, 4, input);
       if (strncmp(header, HEADER_TRANSDUCER, 4) == 0) {
-          auto features = read_le<uint64_t>(input);
+          auto features = read_be<uint64_t>(input);
           if (features >= TDF_UNKNOWN) {
               throw std::runtime_error("Transducer has features that are 
unknown to this version of lttoolbox - upgrade!");
           }
@@ -766,7 +766,7 @@
       alphabet.getSymbol(r, t.second);
       escapeSymbol(r, hfst);
       u_fprintf(output, "%S\t", r.c_str());
-      u_fprintf(output, "%f\t\n", it2.second.second);
+      u_fprintf(output, "%f\n", it2.second.second);
     }
   }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lttoolbox-3.8.2/lttoolbox/ustring.h 
new/lttoolbox-3.8.3/lttoolbox/ustring.h
--- old/lttoolbox-3.8.2/lttoolbox/ustring.h     2025-08-04 20:29:18.000000000 
+0200
+++ new/lttoolbox-3.8.3/lttoolbox/ustring.h     2026-05-07 19:02:21.000000000 
+0200
@@ -26,6 +26,7 @@
 #include <vector>
 #include <cstdint>
 #include <iomanip>
+#include <ostream>
 
 typedef std::basic_string<UChar> UString;
 typedef std::basic_string_view<UChar> UStringView;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lttoolbox-3.8.2/python/setup.py.in 
new/lttoolbox-3.8.3/python/setup.py.in
--- old/lttoolbox-3.8.2/python/setup.py.in      2025-08-04 20:29:18.000000000 
+0200
+++ new/lttoolbox-3.8.3/python/setup.py.in      2026-05-07 19:02:21.000000000 
+0200
@@ -17,7 +17,7 @@
        language='c++',
     sources=['lttoolbox.i'],
     swig_opts = ["-c++", '-I..', "-I@top_srcdir@", "-Wall"],
-    include_dirs=['@top_srcdir@', '@top_srcdir@/lttoolbox'] + 
'@LIBXML_CFLAGS@'.replace('-I', '').split() + '@ICU_CFLAGS@'.replace('-I', 
'').split(),
+    include_dirs=['@top_srcdir@', '@top_srcdir@/lttoolbox'] + 
'@LIBXML_CFLAGS@'.replace('-I', '').split() + '@ICU_CFLAGS@'.replace('-I', 
'').split() + '@UTFCPP_INCLUDE_DIRS@'.replace('-I', '').split(),
     library_dirs=['@BUILD_LIBDIR@'],
        libraries=['lttoolbox', 'xml2', 'icuio', 'icui18n', 'icuuc', 'icudata'],
     extra_compile_args=compile_args,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lttoolbox-3.8.2/tests/lt_comp/__init__.py 
new/lttoolbox-3.8.3/tests/lt_comp/__init__.py
--- old/lttoolbox-3.8.2/tests/lt_comp/__init__.py       2025-08-04 
20:29:18.000000000 +0200
+++ new/lttoolbox-3.8.3/tests/lt_comp/__init__.py       2026-05-07 
19:02:21.000000000 +0200
@@ -51,23 +51,23 @@
 
 class CompLSX(unittest.TestCase, PrintTest):
     printdix = "data/basic.lsx"
-    expectedOutput = '''0      1       <ANY_CHAR>      <ANY_CHAR>      
0.000000\t
-1      1       <ANY_CHAR>      <ANY_CHAR>      0.000000\t
-1      2       <vblex> <vblex> 0.000000\t
-2      3       <ANY_TAG>       <ANY_TAG>       0.000000\t
-3      3       <ANY_TAG>       <ANY_TAG>       0.000000\t
-3      4       <$>     <prn>   0.000000\t
-4      5       p       <$>     0.000000\t
-5      6       r       ε       0.000000\t
-6      7       p       ε       0.000000\t
-7      8       e       ε       0.000000\t
-8      9       r       ε       0.000000\t
-9      10      s       ε       0.000000\t
-10     11      <prn>   ε       0.000000\t
-11     12      <$>     ε       0.000000\t
-12     14      ε       ε       0.000000\t
-12     13      <$>     <$>     0.000000\t
-13     14      ε       ε       0.000000\t
+    expectedOutput = '''0      1       <ANY_CHAR>      <ANY_CHAR>      0.000000
+1      1       <ANY_CHAR>      <ANY_CHAR>      0.000000
+1      2       <vblex> <vblex> 0.000000
+2      3       <ANY_TAG>       <ANY_TAG>       0.000000
+3      3       <ANY_TAG>       <ANY_TAG>       0.000000
+3      4       <$>     <prn>   0.000000
+4      5       p       <$>     0.000000
+5      6       r       ε       0.000000
+6      7       p       ε       0.000000
+7      8       e       ε       0.000000
+8      9       r       ε       0.000000
+9      10      s       ε       0.000000
+10     11      <prn>   ε       0.000000
+11     12      <$>     ε       0.000000
+12     14      ε       ε       0.000000
+12     13      <$>     <$>     0.000000
+13     14      ε       ε       0.000000
 14     0.000000
 '''
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lttoolbox-3.8.2/tests/lt_print/__init__.py 
new/lttoolbox-3.8.3/tests/lt_print/__init__.py
--- old/lttoolbox-3.8.2/tests/lt_print/__init__.py      2025-08-04 
20:29:18.000000000 +0200
+++ new/lttoolbox-3.8.3/tests/lt_print/__init__.py      2026-05-07 
19:02:21.000000000 +0200
@@ -6,36 +6,36 @@
 class NonWeightedFst(unittest.TestCase, PrintTest):
     printdix = "data/biproc-skips-tags-mono.dix"
     printdir = "lr"
-    expectedOutput = 
"0\t1\tv\tv\t0.000000\t\n1\t2\ti\ti\t0.000000\t\n2\t3\th\th\t0.000000\t\n3\t4\tk\tk\t0.000000\t\n4\t5\ti\ti\t0.000000\t\n5\t6\t<KEPT>\t<KEPT>\t0.000000\t\n6\t10\t\u03b5\t\u03b5\t0.000000\t\n6\t7\t<MATCHSOFAR>\t<MATCHSOFAR>\t0.000000\t\n7\t8\t<STILLMATCHING>\t<STILLMATCHING>\t0.000000\t\n8\t9\t<NONMATCHL>\t<NONMATCHR>\t0.000000\t\n9\t10\t\u03b5\t\u03b5\t0.000000\t\n10\t0.000000\n"
+    expectedOutput = 
"0\t1\tv\tv\t0.000000\n1\t2\ti\ti\t0.000000\n2\t3\th\th\t0.000000\n3\t4\tk\tk\t0.000000\n4\t5\ti\ti\t0.000000\n5\t6\t<KEPT>\t<KEPT>\t0.000000\n6\t10\t\u03b5\t\u03b5\t0.000000\n6\t7\t<MATCHSOFAR>\t<MATCHSOFAR>\t0.000000\n7\t8\t<STILLMATCHING>\t<STILLMATCHING>\t0.000000\n8\t9\t<NONMATCHL>\t<NONMATCHR>\t0.000000\n9\t10\t\u03b5\t\u03b5\t0.000000\n10\t0.000000\n"
 
 
 class WeightedFst(unittest.TestCase, PrintTest):
     printdix = "data/cat-weight.att"
     printdir = "lr"
-    expectedOutput = 
"0\t1\tc\tc\t4.567895\t\n1\t2\ta\ta\t0.989532\t\n2\t3\tt\tt\t2.796193\t\n3\t4\tε\t+\t0.824564\t\n4\t5\tε\tn\t1.824564\t\n4\t5\tε\tv\t2.856296\t\n5\t0.525487\n"
+    expectedOutput = 
"0\t1\tc\tc\t4.567895\n1\t2\ta\ta\t0.989532\n2\t3\tt\tt\t2.796193\n3\t4\tε\t+\t0.824564\n4\t5\tε\tn\t1.824564\n4\t5\tε\tv\t2.856296\n5\t0.525487\n"
 
 
 class NegativeWeightedFst(unittest.TestCase, PrintTest):
     printdix = "data/cat-weight-negative.att"
     printdir = "lr"
-    expectedOutput = 
"0\t1\tc\tc\t4.567895\t\n1\t2\ta\ta\t0.989532\t\n2\t3\tt\tt\t2.796193\t\n3\t4\tε\t+\t-0.824564\t\n4\t5\tε\tn\t1.824564\t\n4\t5\tε\tv\t2.856296\t\n5\t-0.525487\n"
+    expectedOutput = 
"0\t1\tc\tc\t4.567895\n1\t2\ta\ta\t0.989532\n2\t3\tt\tt\t2.796193\n3\t4\tε\t+\t-0.824564\n4\t5\tε\tn\t1.824564\n4\t5\tε\tv\t2.856296\n5\t-0.525487\n"
 
 
 class MulticharCompFst(unittest.TestCase, PrintTest):
     printdix = "data/multichar.att"
     printdir = "lr"
-    expectedOutput = 
"0\t1\tא\tא\t0.000000\t\n1\t2\tε\tַ\t0.000000\t\n2\t3\tε\tן\t0.000000\t\n3\t4\tε\t<blah>\t0.000000\t\n4\t0.000000\n"
+    expectedOutput = 
"0\t1\tא\tא\t0.000000\n1\t2\tε\tַ\t0.000000\n2\t3\tε\tן\t0.000000\n3\t4\tε\t<blah>\t0.000000\n4\t0.000000\n"
 
 
 class SectionsFst(unittest.TestCase, PrintTest):
     printdix = "data/sections.dix"
     printdir = "lr"
-    expectedOutput = """0\t1\t.\t.\t0.000000\t
-1\t2\tε\t<sent>\t0.000000\t
+    expectedOutput = """0\t1\t.\t.\t0.000000
+1\t2\tε\t<sent>\t0.000000
 2\t0.000000
 --
-0\t1\tX\tX\t0.000000\t
-1\t2\tε\t<np>\t0.000000\t
+0\t1\tX\tX\t0.000000
+1\t2\tε\t<np>\t0.000000
 2\t0.000000
 """
 

Reply via email to