Jason Eisner
Jason Eisner
The bug was reacting to the fact that one of the sample programs represented words like 'caviar' rather than "caviar". These are different, e.g., word(epsilon,I,J) is usefully different from word("epsilon",I,J)...
_String literals_: The "foo" form is the default. We can consider extending this to also allow """foo""" as in Python, but we don't have to decide that now. I think...
> The "non-gensym" part is to avoid circularity in the definition, which is necessary for correctness. The "non-deterministic" part is necessary for both correctness (consider a rule with X =...
But the semantics of the rule should be independent of mode! So if our definition of the semantics of gensyms depends on the mode, we should try to fix the...
Except for your `X=f(*)` example, which we can return to, here's how I would have thought of it: I always thought we defined the semantics as capturing _all_ variables. Then...
Let's start with fundamentals. I think the basic intuition is that we "simply" want to create a different value of `*` on each hyperedge. The hyperedges are defined by the...
[Here is something I wrote yesterday and just finished up. However, it's superseded by a simpler treatment that nwf and I discussed, and which I'll put in the next comment.]...
Here's another, simpler story, which @nwf actually buys -- we discussed it from 3:30-5:00 yesterday -- except that I'll try to improve it a little more here. As proposed earlier,...
Yeah, I understood the intent, which is good. But the intent seems to be violated on the second error from #30, which says "this is almost assuredly not your fault"...
I've seen the "syntactically valid but ..." apology in cases where it doesn't apply. For example, ``` DynaCompilerError: Encountered error in input program: Conflicting aggregators; rule uses '=' for a/0...