newsletters:2024-12
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
newsletters:2024-12 [2024/12/31 11:54] – [New parallel evaluator] osnr | newsletters:2024-12 [2024/12/31 22:24] (current) – [New parallel evaluator] osnr | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== December 2024 newsletter | + | ====== December 2024 newsletter ====== |
Thanks for following along so far! We've been working on a lot of big projects in 2024 -- many still under way (parallel evaluator, gadget design, RFID tag localization, | Thanks for following along so far! We've been working on a lot of big projects in 2024 -- many still under way (parallel evaluator, gadget design, RFID tag localization, | ||
Line 13: | Line 13: | ||
* presented Folk at [[newsletters/ | * presented Folk at [[newsletters/ | ||
- | We're looking forward to seeing more big projects come to fruition | + | In 2025, we're looking forward to seeing more of these big projects come to fruition, then playing with the resulting |
(If you want to stop by next month, our next Folk open house will be [[https:// | (If you want to stop by next month, our next Folk open house will be [[https:// | ||
Line 95: | Line 95: | ||
</ | </ | ||
- | I seem to have all the parts now, so the next steps are system/ | + | I seem to have all the parts now, so the next steps are system/ |
+ | |||
+ | {{newsletters: | ||
==== New parallel evaluator ==== | ==== New parallel evaluator ==== | ||
Line 112: | Line 114: | ||
=== Performance and memory leaks === | === Performance and memory leaks === | ||
- | For most of this month, I've been staring at increasingly elaborate [[https:// | + | For most of this month, I've been staring at increasingly elaborate [[https:// |
{{newsletters: | {{newsletters: | ||
- | I'm kind of addicted to it -- it feels like it makes a lot of the monitoring stuff I've hacked into folk2 obsolete, because you can just use Tracy to //see// everything (as long as you add the right hooks). No need for perf probes, or gperftools heap monitoring, or the trace log endpoint. | + | Now that I've added enough hooks, I get these extremely rich views of all Folk programs/ |
+ | |||
+ | {{newsletters: | ||
+ | |||
+ | Some of the resulting improvements this month: | ||
+ | |||
+ | * Fixed a ton of memory leaks (mostly freeing clauses and terms in clauses, and some transient objects in C); I think folk2 might be less leaky than folk1 now. | ||
+ | * The Tracy memory visualization is very cool: | ||
+ | * {{newsletters: | ||
+ | * Saw that we were spending a lot of time waiting on the one big trie lock, so replaced the trie with an immutable path-copying trie (and an [[https:// | ||
+ | * Fixed a [[https:// | ||
+ | * Created (by patching up memory leaks) and then fixed a problem where we would leak all the statement slots which eventually caused the whole system to blow up | ||
+ | * {{newsletters: | ||
+ | * "We were not freeing aborted ref which caused us to run out of statement slots which caused statementNew to hang which caused the global workqueue to overflow." | ||
+ | * Fixed horrible bug where my steal-half deque operation was wrong (so were dropping lots of operations, the system was not behaving correctly), replaced with more standard steal-one | ||
+ | |||
+ | I'm kind of addicted to using Tracy -- it feels like it obsoletes | ||
And using Tracy feels // | And using Tracy feels // | ||
Line 122: | Line 140: | ||
{{newsletters: | {{newsletters: | ||
- | Fixed a ton of memory leaks; I think folk2 might be less leaky than folk1 now. | ||
==== RFID localization ==== | ==== RFID localization ==== | ||
Line 141: | Line 158: | ||
(Even before this, we've been kind of poking at Linux to get stuff to work, locking threads at high priority and putting them on specific CPUs, etc. If I turn that stuff off and rely on default scheduling behavior, we do get worse at talking to the tags, so it's doing // | (Even before this, we've been kind of poking at Linux to get stuff to work, locking threads at high priority and putting them on specific CPUs, etc. If I turn that stuff off and rely on default scheduling behavior, we do get worse at talking to the tags, so it's doing // | ||
+ | |||
+ | {{newsletters: | ||
=== Rounds === | === Rounds === | ||
Line 157: | Line 176: | ||
==== Other Folk system improvements ==== | ==== Other Folk system improvements ==== | ||
- | * Sébastien Lerique has been setting up a system in France; fixed an error in calibration | + | * Sébastien Lerique has been setting up his system in France; |
* We might need a better strategy for calibrating ultra-short-throw / highly distorted projectors (maybe conservatively only support a single plane?) | * We might need a better strategy for calibrating ultra-short-throw / highly distorted projectors (maybe conservatively only support a single plane?) | ||
- | * Daniel Pipkin fixed SSID detection on macOS Sequoia | + | * Daniel Pipkin |
- | * Andrés added support for single-l '' | + | * Andrés |
==== Friends and outreach ==== | ==== Friends and outreach ==== |
newsletters/2024-12.1735646082.txt.gz · Last modified: 2024/12/31 11:54 by osnr