Skip to content

Rescan logic for channels/terminals is broken #292

Description

@neilconway

The rescan/invalidation code for terminals/channels is different than that for scratches; it probably shouldn't be. e.g., this program:

require 'rubygems'
require 'bud'

class Phooey
  include Bud
  state do
    table :truth, []=>[:val]
  end

  bootstrap do
    truth <+ [[true]]
  end

  bloom do
    stdio <~ truth {|t| ["foo"]}
  end
end

p = Phooey.new
3.times { p.tick }

produces only a single "foo", rather than 3. If you redirect truth through a scratch, it produces the correct output.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions