changeset 33302:95596df836a1 bytecode-interpreter

maint: Merge default to bytecode-interpreter
author Arun Giridhar <arungiridhar@gmail.com>
date Wed, 03 Apr 2024 07:28:44 -0400
parents e3d55a08aff4 (current diff) 36918f99b189 (diff)
children 0b4118c91dc9
files
diffstat 2 files changed, 9 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/bootstrap.conf	Tue Apr 02 16:11:12 2024 -0400
+++ b/bootstrap.conf	Wed Apr 03 07:28:44 2024 -0400
@@ -43,6 +43,7 @@
   crypto/sha512-buffer
   dup2
   fcntl
+  fflush
   filemode
   fnmatch
   fpucw
--- a/scripts/testfun/assert.m	Tue Apr 02 16:11:12 2024 -0400
+++ b/scripts/testfun/assert.m	Wed Apr 03 07:28:44 2024 -0400
@@ -765,17 +765,17 @@
 ## Convert all error indices into tuple format
 function cout = ind2tuple (matsize, erridx)
 
-  cout = cell (numel (erridx), 1);
   tmp = cell (1, numel (matsize));
   [tmp{:}] = ind2sub (matsize, erridx(:));
   subs = [tmp{:}];
   if (numel (matsize) == 2)
-    subs = subs(:, matsize != 1);
+    subs = subs(:, matsize != 1);  # For vectors, use 1-D index
   endif
-  for i = 1:numel (erridx)
-    loc = sprintf ("%d,", subs(i,:));
-    cout{i} = ["(" loc(1:end-1) ")"];
-  endfor
+  fmt = repmat ('%d,', 1, columns (subs));
+  fmt(end) = [];   # delete final extra comma
+  cout = ostrsplit (sprintf (['(' fmt ')', '$'], subs'), '$');
+  cout(end) = [];  # delete extra cell from final '$'
+  cout = cout.';   # return column vector 
 
 endfunction
 
@@ -787,7 +787,7 @@
   str = [str, "\n  Location  |  Observed  |  Expected  |  Reason\n"];
 
   pos = numel (str);
-  str(end + 1e6) = ' ';
+  str(pos + 100 * numel (err.index)) = ' ';
   for i = 1:numel (err.index)
     leni = numel (err.index{i});
     leno = numel (err.observed{i});
@@ -797,7 +797,7 @@
             6+fix(leno/2), err.observed{i}, max (6-fix(leno/2), 0), "",
             6+fix(lene/2), err.expected{i}, max (6-fix(lene/2), 0), "",
             err.reason{i});
-    if (pos + numel (tmp) >= numel (str))
+    if (pos + numel (tmp) > numel (str))
       str(end + 1e6) = ' ';
     endif
     str((pos + 1):(pos + numel (tmp))) = tmp;