Skip to content

Rescan logic for channels/terminals is broken #292

@neilconway

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.

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