csys: rename programs to program, improvements: :default stage, ...

This commit is contained in:
Helmut Merz 2026-04-25 22:19:31 +02:00
parent 1c3be4a0e7
commit 157c013c44
3 changed files with 11 additions and 8 deletions

View file

@ -14,7 +14,9 @@ defmodule Scopes.CSys.Environ do
def get_stage(env, prog, stage) do def get_stage(env, prog, stage) do
Agent.get(env, fn {_parent, progs} -> Agent.get(env, fn {_parent, progs} ->
progs[prog][stage] #progs[prog][stage]
stages = progs[prog]
stages[stage] || stages[:default]
end) end)
end end

View file

@ -1,4 +1,4 @@
defmodule Scopes.CSys.Programs do defmodule Scopes.CSys.Program do
import Scopes.CSys, only: [ import Scopes.CSys, only: [
neuron: 1, update_neuron: 1, synapse: 3, neuron: 1, update_neuron: 1, synapse: 3,
syns: 1, env: 1 syns: 1, env: 1
@ -9,8 +9,10 @@ defmodule Scopes.CSys.Programs do
# programs # programs
def basic_prog() do def basic_prog() do
%{initial: &std_proc/2} %{initial: &std_proc/2,
#&std_proc/2 active: &std_proc/2,
retired: &std_proc/2
}
end end
# processors # processors
@ -39,6 +41,6 @@ defmodule Scopes.CSys.Programs do
end end
def std_proc(msg, scope) do def std_proc(msg, scope) do
unless forward(msg, scope), do: notify(msg, scope) forward(msg, scope) || notify(msg, scope)
end end
end end

View file

@ -5,13 +5,12 @@ defmodule Scopes.CSysTest do
alias Scopes.Core.Actor alias Scopes.Core.Actor
alias Scopes.CSys alias Scopes.CSys
alias Scopes.CSys.Environ alias Scopes.CSys.Environ
alias Scopes.CSys.Programs alias Scopes.CSys.Program
describe "basic:" do describe "basic:" do
test "minimal-neural-net" do test "minimal-neural-net" do
env = Environ.create(self()) env = Environ.create(self())
Environ.put_prog(env, :basic, Programs.basic_prog()) Environ.put_prog(env, :basic, Program.basic_prog())
#proc = Environ.get_prog(env, :basic)
proc = Environ.get_stage(env, :basic, :initial) proc = Environ.get_stage(env, :basic, :initial)
zero = CSys.neuron({[], proc, [], env}) zero = CSys.neuron({[], proc, [], env})
Actor.send(zero, "Hello Zero!") Actor.send(zero, "Hello Zero!")