User Tools

Site Tools


newsletters:2025-05

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
newsletters:2025-05 [2025/06/04 02:19] – [Discord changes] osnrnewsletters:2025-05 [2025/06/04 02:25] (current) – [Hold debugger and bug fixes] osnr
Line 52: Line 52:
 === Hold debugger and bug fixes === === Hold debugger and bug fixes ===
  
-I was debugging an issue with calibration where the new calibration sometimes wouldn't actually happen after all the poses were in place. It seemed to be an issue with the Collect when calibration poses are present but no calibration is present (that negated query uses a Collect internally). And that issue seemed to come from the Hold of the collection statement not locking in properly.+I was debugging an issue with calibration where the new calibration sometimes wouldn't actually happen after all the poses were in place. (and wouldn't happen even after restart when you have poses but no calibration result) 
 + 
 +It seemed to be an issue with the Collect when calibration poses are present but no calibration is present (that negated query uses a Collect internally). And that issue seemed to come from the Hold of the collection statement not locking in properly.
  
 So I made a Hold debugger at /holds! It lists all current Holds in the system (key, index, held statement), which is a surprisingly useful lens to view everything going on in Folk (not as much spam as the full-statement list, and things that go wrong are usually Hold-related). So I made a Hold debugger at /holds! It lists all current Holds in the system (key, index, held statement), which is a surprisingly useful lens to view everything going on in Folk (not as much spam as the full-statement list, and things that go wrong are usually Hold-related).
Line 58: Line 60:
 {{newsletters:a541289d-78c2-41ca-a07c-71ac756dba9f-1291-0000030c9eed51e0.png?300px}} {{newsletters:a5eaa225-97a4-4bbf-949a-d351dfc03233-1291-0000030ca69fdc06.png?300px}} {{newsletters:a541289d-78c2-41ca-a07c-71ac756dba9f-1291-0000030c9eed51e0.png?300px}} {{newsletters:a5eaa225-97a4-4bbf-949a-d351dfc03233-1291-0000030ca69fdc06.png?300px}}
  
-I used the Hold debugger to find 'anomalous' Holds that shouldn't exist, where the statement ref associated with a Hold is s0:0 (null). That means we tried to Hold a statement and then failed or something. +I used the Hold debugger iteration to find 'anomalous' Holds that shouldn't exist, where the statement ref associated with a Hold is s0:0 (null). That means we tried to Hold a statement and then failed or something. That's how I diagnosed the bugs from above. I think there were two. 
 + 
 +  - If the statement you are trying to hold is already present (for whatever reason, maybe it was directly Claimed by someone else, maybe it's hanging around), we were setting the Hold object to a null ref. [[https://github.com/FolkComputer/folk/compare/301a16dd3fe1214250f8c22a9c9d710f8376a1e6...7d64049f85ff956c02fb405867d2331bb8fb55c8|We should set it to the reused statement ref and just use the Hold as another refcount supporter.]] 
 +  - We [[https://github.com/FolkComputer/folk/commit/244ecef3212b509769888ab060cdd6da74ea5a41|weren't initializing the version number]] in Hold objects, so if they were reused they'd have weird behavior on version check
 === Calibration === === Calibration ===
  
newsletters/2025-05.1749003559.txt.gz · Last modified: by osnr

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki