From 157c013c44ccd7b6abcf42af53802dc1f4c59729 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sat, 25 Apr 2026 22:19:31 +0200 Subject: [PATCH] csys: rename programs to program, improvements: :default stage, ... --- lib/csys/environ.ex | 4 +++- lib/csys/{programs.ex => program.ex} | 10 ++++++---- test/csys_test.exs | 5 ++--- 3 files changed, 11 insertions(+), 8 deletions(-) rename lib/csys/{programs.ex => program.ex} (85%) diff --git a/lib/csys/environ.ex b/lib/csys/environ.ex index a09b0e7..5272381 100644 --- a/lib/csys/environ.ex +++ b/lib/csys/environ.ex @@ -14,7 +14,9 @@ defmodule Scopes.CSys.Environ do def get_stage(env, prog, stage) do Agent.get(env, fn {_parent, progs} -> - progs[prog][stage] + #progs[prog][stage] + stages = progs[prog] + stages[stage] || stages[:default] end) end diff --git a/lib/csys/programs.ex b/lib/csys/program.ex similarity index 85% rename from lib/csys/programs.ex rename to lib/csys/program.ex index 43766b2..a9c10a6 100644 --- a/lib/csys/programs.ex +++ b/lib/csys/program.ex @@ -1,4 +1,4 @@ -defmodule Scopes.CSys.Programs do +defmodule Scopes.CSys.Program do import Scopes.CSys, only: [ neuron: 1, update_neuron: 1, synapse: 3, syns: 1, env: 1 @@ -9,8 +9,10 @@ defmodule Scopes.CSys.Programs do # programs def basic_prog() do - %{initial: &std_proc/2} - #&std_proc/2 + %{initial: &std_proc/2, + active: &std_proc/2, + retired: &std_proc/2 + } end # processors @@ -39,6 +41,6 @@ defmodule Scopes.CSys.Programs do end def std_proc(msg, scope) do - unless forward(msg, scope), do: notify(msg, scope) + forward(msg, scope) || notify(msg, scope) end end diff --git a/test/csys_test.exs b/test/csys_test.exs index 8c92bd3..bb67d35 100644 --- a/test/csys_test.exs +++ b/test/csys_test.exs @@ -5,13 +5,12 @@ defmodule Scopes.CSysTest do alias Scopes.Core.Actor alias Scopes.CSys alias Scopes.CSys.Environ - alias Scopes.CSys.Programs + alias Scopes.CSys.Program describe "basic:" do test "minimal-neural-net" do env = Environ.create(self()) - Environ.put_prog(env, :basic, Programs.basic_prog()) - #proc = Environ.get_prog(env, :basic) + Environ.put_prog(env, :basic, Program.basic_prog()) proc = Environ.get_stage(env, :basic, :initial) zero = CSys.neuron({[], proc, [], env}) Actor.send(zero, "Hello Zero!")