hayodea
1c397dfeb5
Split: Split libspinscale off from SMO.
...
Now we can probably begin using libspinscale in Couresilient
without worrying about excessive technical debt later on.
2026-02-22 17:46:27 -04:00
hayodea
8011fe12bc
mindThread: remove parent ref; might remove class entirely
2026-02-19 19:20:21 -04:00
hayodea
ab399cafeb
Improve CONFIG_WORLD_USE_BODY_THREAD handling
...
We no longer need to do ugly ifdefs in the constructor for
Mind::Mind because we preprocess the handling for BODY and WORLD
in SmoThreadIds.
2026-02-18 02:05:44 -04:00
hayodea
687bab53b5
Change type: PuppetComponent::thread to PuppetThread
2026-02-18 02:05:18 -04:00
hayodea
9159e9f7b4
Update: rename mrntt=>pptr
2026-02-18 01:14:26 -04:00
hayodea
686bd6d38b
Dbg:TraceCallables: set cmdline flag for libspinscale
2026-02-17 11:10:24 -04:00
hayodea
e4adfa0e61
Main: move CRT cmdline obj into libspinscale
2026-02-17 10:41:47 -04:00
hayodea
5a4f498663
Libspinscale: Add separate CMake project config
2025-12-28 03:44:01 -04:00
hayodea
34d76df7d9
Spinscale: create new namespace sscl
2025-12-27 16:21:22 -04:00
hayodea
0c4f427c0a
Spinscale: PuppetComponent takes PuppetApplication&
2025-12-27 14:15:17 -04:00
hayodea
f862db922e
spinscale: Move thread init/jolt/exit logic into PuppetApplication
2025-12-27 14:01:15 -04:00
hayodea
cd77f4b02d
Component: Rename MindComponent=>PuppetComponent
2025-12-27 13:29:49 -04:00
hayodea
2222491c21
Use ref in ComponentThread::joltThreadReq
2025-12-26 13:46:28 -04:00
hayodea
45959f9d1c
Libspinscale: begin splitting it off
2025-12-26 01:18:39 -04:00
hayodea
2dc6b729e0
Update for Autogoalation
2025-12-25 19:21:47 -04:00
hayodea
2a8d320f7a
DevReattacher: Spinlock-protect stop() call
...
Replace the current delay timeout mechanism with a spinlock.
Both mechanisms try to eliminate the possibility of an in-flight
async op accessing state that has been destroyed by stop().
But the spinlock is less arbitrary.
2025-11-27 22:52:09 -04:00
hayodea
2c891bd2f3
Mrntt: Re-add exceptionInd
...
This now ensures that finalizeReq is indeed called from mrntt,
since exception-experiencing threads will post an exceptionInd
to mrntt, which will then call finalizeReq.
2025-11-23 03:27:18 -04:00
hayodea
ee6405048a
OClCollMeshEngn: use the central ComputeMgr APIs
...
We no longer create our own context and get our own OpenCL device
in OClCollMeshEngn::setup. We now request a device from the central
ComputeManager.
2025-11-20 00:55:19 -04:00
hayodea
2c7e090ef1
Move ClBuffer/ComputeDevice methods into libattachmentSupport
2025-11-20 00:53:28 -04:00
hayodea
27b43c6686
Add ComputeManager; add SmoHooks for getting ClDevices, buffers
...
We added a new centralized OpenCL Compute manager. This can later
be extended to support CUDA, SyCL, etc. SMO can be configured at
build time to choose which API it will use for compute.
Moreover, the ComputeMgr allows us to register buffers which are
available to all cl_contexts.
2025-11-19 22:34:25 -04:00
hayodea
b598ca8594
libs: Add smohook for getting cmdline opts
2025-11-07 14:59:28 -04:00
hayodea
457d0f9345
Dbg:Add CallableTracer for callables post()ed to boost.asio
...
This class and its macro allow us to trace the invocation of
callbacks as they're invoked by Boost.asio.
2025-11-06 21:45:16 -04:00
hayodea
eeb057effd
Dbg:Threading: prefix thread names with "smo:" so they group
2025-11-06 15:09:15 -04:00
hayodea
c7e117b08e
Dbg:Threading: use pthread_setname_np for debugging ease
2025-11-06 15:04:04 -04:00
hayodea
af57c4dfd1
Boost: move top_ link fixer to top of files
2025-11-06 15:03:26 -04:00
hayodea
032e9ef8d5
DevMgt: Update comments on bg daemon thread selection
2025-11-04 00:33:43 -04:00
hayodea
d6e1e7ebc0
DevMgmt: StimBuffApi bg tasks should execute on body thread
2025-11-04 00:32:14 -04:00
hayodea
5845f1a41d
Bug:Boost: Use shlibs instead of header-only for call_stack::top_
...
This symbol is defined as a static member object inside of a
boost detail header. When boost headers are used in a project
that uses Boost in both the main binary as well as dlopen()'d
shlibs, the top_ symbol gets duplicated and the metadata gets
partitioned.
We use the Boost shlib to unify both the main binary and the
shlibs to use the same memory address for top_.
This involves marking the templated object call_stack::top_ as
"extern" and then declaring to Boost that we intend to use the
shlibs.
2025-11-03 22:59:52 -04:00
hayodea
67af9f02da
DAPSpecs: Update parseRequiredParamAsInt to support all param lists
2025-11-01 01:11:34 -04:00
hayodea
e824685c19
DAPSpec: Add params to quale-iface-api
...
We add params to the quale iface (soon to be renamed to cologex-api).
This allows us to eventually set the history length for stimbuffs.
2025-11-01 00:57:04 -04:00
hayodea
07c48d78d1
Todo: update comments
2025-10-31 08:57:37 -04:00
hayodea
393326052c
Todo: update and add comments to finalizeInd
2025-10-31 08:57:37 -04:00
hayodea
a68143810e
DeviceReattacher: use provided ioThread; not mrntt directly
2025-10-31 08:57:22 -04:00
hayodea
109cd9eb03
DevReattacher: Add 20ms sync delay during stop()
...
This fixes the bug where in-flight async ops that were triggered
by DevReattacher (such as livoxGen1_attachDeviceReq) that have
unconditional delays in them would fire late, after the state
var they rely upon had already been de-initialized.
We use an async bridge to ensure that those ops get executed in
the background and then resume execution after the delay.
2025-10-31 08:20:33 -04:00
hayodea
b277baa76d
Whitespace
2025-10-23 00:24:57 -04:00
hayodea
66a9db13c3
LivoxProto1: invoke enablePcloudDataReq
...
Sadly we don't get to immediately see the results of our
work because we have to do a unified dispatcher for the incoming
UDP messages on the command channel.
2025-10-22 01:59:04 -04:00
hayodea
e444cd1e04
Move files around for cologex and sitbuff lib impl
2025-10-21 20:02:36 -04:00
hayodea
6bc5bd30d5
Rename: ChronoFrame=>PhenoFrame and ChronoSeq=>PhenoSeq
2025-10-21 19:38:49 -04:00
hayodea
56367402d7
Move intrinEventInd()s from MarionetteComponent=>Director
2025-10-21 19:38:49 -04:00
hayodea
035accf553
Rename: painfulQuale.cpp=>negtrinEvent.cpp
2025-10-21 19:38:49 -04:00
hayodea
55f21c5436
Add skeleton negtrinEventInd, build painfulQuale.cpp again
2025-10-21 19:38:49 -04:00
hayodea
d1b99852a8
Move MarionetteComponent out of component.h=>marionette.h
2025-10-21 19:38:49 -04:00
hayodea
66bb30cef5
Move painfulQuale.cpp into marionette
2025-10-21 19:38:49 -04:00
hayodea
068a885bff
Goal: now is a MentalEntity
2025-10-21 19:38:49 -04:00
latentprion
d317f1fb06
Whitespace
2025-10-16 03:41:22 -04:00
latentprion
edd223b083
Remove unnecessary componentThread.h #includes
...
Since componentThread #includes boost::asio components, removing
it should improve compile times.
2025-10-16 02:15:16 -04:00
latentprion
945c5b397b
Build: remove superfluous io_service.hpp #includes
2025-10-16 01:08:05 -04:00
latentprion
5017bf5f92
Build: use piecemeal boost headers.
...
Reduces compile time on a 4-core ARM Rpi5 from 1m12s wallclock
(i.e: "real") time to 0m55s; and from 4m+ "user" time to 3m8s.
2025-10-16 01:00:48 -04:00
hayodea
95d5c46e43
Rename: CologexSet=>CologexSeq to be consistent with chronomena
2025-10-05 21:44:12 -04:00
hayodea
4a55ff9bf2
Revamp Chronomenon: ChronoFrame and ChronoSeq are new classes
...
Chronomenon is now the base class category for stored raw
stim data.
2025-10-05 21:44:12 -04:00