csys: make env a neuron, move setup To Environ
This commit is contained in:
parent
48d8bcdfa8
commit
e657dd5a2e
4 changed files with 20 additions and 15 deletions
|
|
@ -2,7 +2,6 @@ defmodule Scopes.CSys do
|
|||
require Logger
|
||||
|
||||
alias Scopes.Core.Actor
|
||||
#alias Scopes.CSys.Environ
|
||||
alias Scopes.Shape
|
||||
|
||||
def neuron(scope) do
|
||||
|
|
@ -21,19 +20,10 @@ defmodule Scopes.CSys do
|
|||
|
||||
# helper functions
|
||||
|
||||
defp process(msg, scope) do
|
||||
def process(msg, scope) do
|
||||
proc(scope).(msg, scope)
|
||||
end
|
||||
|
||||
def setup(_progname, prog) do
|
||||
#env = Environ.create(self())
|
||||
#Environ.put_prog(env, progname, prog)
|
||||
#proc = Environ.get_stage(env, progname, :initial)
|
||||
proc = prog[:initial]
|
||||
#neuron({[], proc, [], env})
|
||||
neuron({[], proc, [], self()})
|
||||
end
|
||||
|
||||
def send_value(rcvr, val) do
|
||||
msg = Shape.create([:csys, :data], data: %{value: val})
|
||||
Actor.send(rcvr, msg)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,21 @@
|
|||
defmodule Scopes.CSys.Environ do
|
||||
use Agent
|
||||
|
||||
alias Scopes.CSys
|
||||
|
||||
def setup(prog) do
|
||||
env = CSys.neuron({[], &proc/2, [], self()})
|
||||
proc = prog[:initial]
|
||||
CSys.neuron({[], proc, [], env})
|
||||
#CSys.neuron({[], proc, [], self()})
|
||||
end
|
||||
|
||||
def proc(msg, scope) do
|
||||
send(CSys.env(scope), msg)
|
||||
end
|
||||
|
||||
# legacy /obsolete: Agent-based environ with program registry
|
||||
|
||||
def create(parent, progs \\ %{}) do
|
||||
{:ok, env} = Agent.start_link( fn -> {parent, progs} end, name: __MODULE__)
|
||||
env
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ defmodule Scopes.CSys.Program do
|
|||
syns: 1, env: 1
|
||||
]
|
||||
|
||||
#alias Scopes.CSys.Environ
|
||||
alias Scopes.Core.Actor
|
||||
|
||||
# programs
|
||||
|
||||
|
|
@ -33,8 +33,7 @@ defmodule Scopes.CSys.Program do
|
|||
# processor steps
|
||||
|
||||
def notify(msg, scope) do
|
||||
#Environ.notify(env(scope), msg)
|
||||
send(env(scope), msg)
|
||||
Actor.send(env(scope), msg)
|
||||
end
|
||||
|
||||
def forward(msg, scope) do
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ defmodule Scopes.CSysTest do
|
|||
|
||||
alias Scopes.Core.Actor
|
||||
alias Scopes.CSys
|
||||
alias Scopes.CSys.Environ
|
||||
alias Scopes.CSys.Program
|
||||
alias Scopes.Shape
|
||||
|
||||
|
|
@ -18,7 +19,7 @@ defmodule Scopes.CSysTest do
|
|||
|
||||
describe "basic:" do
|
||||
test "minimal-neural-net" do
|
||||
zero = CSys.setup(:basic, Program.basic_prog())
|
||||
zero = Environ.setup(Program.basic_prog())
|
||||
#Actor.send(zero, "Hello Zero!")
|
||||
CSys.send_value(zero, "Hello Zero!")
|
||||
assert "Hello Zero!" = receive_data().value
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue