diff --git a/lib/csys/csys.ex b/lib/csys/csys.ex index 58cb54d..dda9070 100644 --- a/lib/csys/csys.ex +++ b/lib/csys/csys.ex @@ -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 diff --git a/lib/csys/environ.ex b/lib/csys/environ.ex index e36fd84..c69b2e0 100644 --- a/lib/csys/environ.ex +++ b/lib/csys/environ.ex @@ -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 diff --git a/lib/csys/program.ex b/lib/csys/program.ex index 7212933..bef7b31 100644 --- a/lib/csys/program.ex +++ b/lib/csys/program.ex @@ -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