csys: start setting neuron addresses to be stored in env state

This commit is contained in:
Helmut Merz 2026-05-24 14:55:12 +02:00
parent f8a767db50
commit 417bdf201a
3 changed files with 9 additions and 7 deletions

View file

@ -34,9 +34,9 @@ defmodule Scopes.CSys do
#Enum.reduce(syns(scope), false, fn s, _acc -> s.(msg); true end)
end
def create(_msg, scope = {state, proc, _syns, env}) do
def create(msg, scope = {state, proc, _syns, env}) do
new = neuron({state, proc, [], env})
notify_created(new, scope)
notify_created(msg, new, scope)
new
end
@ -68,9 +68,10 @@ defmodule Scopes.CSys do
# notifications
def notify_created(new, scope) do
msg = Shape.create(~w(csys created)a, data: %{old: self(), new: new})
notify(msg, scope)
def notify_created(msg, new, scope) do
msg1 = Shape.create(~w(csys created)a,
data: Map.merge(Shape.data(msg), %{old: self(), new: new}))
notify(msg1, scope)
end
# scope access shortcuts

View file

@ -10,7 +10,8 @@ defmodule Scopes.CSys.Environ do
def setup({state, proc}, seq \\ []) do
scope = {%State{init_seq: seq}, &proc_env/2, [], self()}
env = CSys.neuron(scope)
CSys.create(Shape.create([:csys, :zero]), {state, proc, [], env})
CSys.create(Shape.create([:csys, :zero], data: %{addr: [:csys, :c00, {0, 0}]}),
{state, proc, [], env})
env
end

View file

@ -155,7 +155,7 @@ defmodule Scopes.CSys.Program do
def init_recursive_1() do [
fn _env, %Environ.State{neurons: [zero]} ->
CSys.send_message(zero, ~w(csys connect)a, %{target: zero, op: negate()})
CSys.send_message(zero, ~w(csys create succ)a, %{name: ~w(csys e01 001)a})
CSys.send_message(zero, ~w(csys create succ)a, %{addr: [:csys, :e01, {1, 1}]})
end
]
end