[Haskell-cafe] Re: Atom bug(?)
tomahawkins at gmail.com
Tue Jan 19 17:13:16 EST 2010
On Tue, Jan 19, 2010 at 10:42 PM, Lee Pike <leepike at gmail.com> wrote:
> Is this a bug? The following program compiles, but the rule is scheduled at
> period 1 (rather than 0). I wouldn't have thought to have an assignment
> outside of an atom until another engineer here wrote it. In any event, I
> would have expected that the rule should have period 3.
> example :: Atom ()
> example = period 3 $ do
> a <- word32 "a" 0
> a <== 21
The top-most rule is implied with the compile command. This makes it
appear as if the assignment doesn't belong to a rule, when if fact it
belongs to the implicit top level rule. The top level rule always has
a period of 1.
Period constraints are only applied to sub-rules, not the current
rule. This prevents ambiguous situations, such as:
atom "something" $ do
period 1 (a <== 1) -- Does 'something' execute every 1 or ...
period 2 (b <== 2) -- 2 cycles?
So in your example, 'period 3' has no sub rules that it applies to.
More information about the Haskell-Cafe