From baf46a36d449de3f37d77b613e2f3eab4820ddcf Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sun, 19 Jul 2026 15:26:13 +0200 Subject: [PATCH] environ: use cell registry: register-cell, find-cells --- csys/environ.lisp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/csys/environ.lisp b/csys/environ.lisp index fde15cc..3495a9e 100644 --- a/csys/environ.lisp +++ b/csys/environ.lisp @@ -4,6 +4,7 @@ (:use :common-lisp) (:local-nicknames (:actor :scopes/core/actor) (:csys :scopes/csys) + (:index :scopes/util/index) (:message :scopes/core/message) (:shape :scopes/shape)) (:export #:actions @@ -35,7 +36,17 @@ ;;;; helpers -(defun register-cell (reg addr cell)) +(defun register-cell (reg addr cell) + (destructuring-bind (cat key) addr + (let ((idx (getf cat reg))) + (unless idx + (setf idx (index:create)) + (setf (getf cat reg) idx)) + (index:put idx key cell)))) -(defun find-cells (reg addr)) +(defun find-cells (reg addr) + (destructuring-bind (cat key) addr + (let ((idx (getf cat reg))) + (when idx + (index:query idx key)))))