alexgordon has quit [Quit: Computer has gone to sleep.]
<ELLIOTTCABLE>
devyn: can you copy-paste your comment on #18 to #17? I want to continue the discussion there, as that's the relevant Issue
<ELLIOTTCABLE>
as for syntax: I'd really like to do something node-specific.
<ELLIOTTCABLE>
Tires syntax doesn't really *have* statements; the semicolon actually has semantic meaning as a seperator, and works *within expressions* (both data-expressions and pure dependency-expressions); it has no further meaning at the top level, it's still splitting one expression (the entire document) into sub-expressions (each line)
<ELLIOTTCABLE>
just a BTW
<ELLIOTTCABLE>
so, the syntax I'm considering for SSA is basically to *introduce* statements (not the same thing as tires' semicolons.)
<ELLIOTTCABLE>
and the dependencies, I want them to be inside the “body” of the statement
<ELLIOTTCABLE>
basically, all I want to do to add SSA/naming to Tires,
<ELLIOTTCABLE>
foo [bar; baz] widget
<ELLIOTTCABLE>
could becomeer
<ELLIOTTCABLE>
er nope
<ELLIOTTCABLE>
foo [snoggle gaz; widget] bar
<ELLIOTTCABLE>
could instead be written as
<ELLIOTTCABLE>
foo [$1; widget] bar
<ELLIOTTCABLE>
1: snoggle gaz
<ELLIOTTCABLE>
(can be non-numeric, but will have a restricted character set. no spaces, probably.)
<ELLIOTTCABLE>
in that way, *any* complex Tires graph-of-nodes can be deconstructed into a simplest-form SSA;
<ELLIOTTCABLE>
and instead of introducing a dependency-format like yours on the LHS of the SSA lines, we'll just use the existing dependency-forms from Tires: () inside an expression for data-dependency (which obviously has *semantic* meaning, as well; just like it always has. indirection of the data in question.), and [] for a pure dependency (which is basically a data
<ELLIOTTCABLE>
‘noop’)
<ELLIOTTCABLE>
so, two differences from your suggestions, then
<ELLIOTTCABLE>
your example code becomes this:
<ELLIOTTCABLE>
shit,
<ELLIOTTCABLE>
I forgot we exhanged () and [] in paws-current
<ELLIOTTCABLE>
so what's that make the choice of semantics in tires? :x
<ELLIOTTCABLE>
switch around what I said above, I guess. [] for indirection (as in paws-current) and thus data-dependency, while () then means a noop pure-dependency
<ELLIOTTCABLE>
some obvious syntactic considerations there:
<ELLIOTTCABLE>
it's basically a syntactic hybrid of an SSA-expression of a graph, and the Tires-expression of a graph.
<ELLIOTTCABLE>
The latter is more readable, but limited; it's also harder to operate on than SSA. So, parts of a given arbitrary instruction graph can be encoded in Tires-form by humans.
<ELLIOTTCABLE>
if an entire file can be expressed without any many-to-one relationships (exclusively one-to-one, and one-to-many), then that file can be written in pure Tires
<ELLIOTTCABLE>
which basically is parsed as a single implicit “$MAIN” node
<ELLIOTTCABLE>
devyn: on the off-chance you loaded that, but haven't spoken: reload.
<ELLIOTTCABLE>
I tried to use your original example, but, it actually makes no sense (the console log or whatever presumably has no return value? not to mention that you data-dependended and execution-depended on the same thing.)
<ELLIOTTCABLE>
so I slightly re-wrote it. Also, to show off what I'm talking about.