Sha256: 9e84d50ca4c78f1cd2f2a5730a57c43ef35b6afb026ad5b889f0ffc428c69059

Contents?: true

Size: 1.75 KB

Versions: 2

Compression:

Stored size: 1.75 KB

Contents

# Furnace X-Ray

Furnace X-Ray is a visualizer for transformations performed on Static Single
Assignment form in the [Furnace][] framework.

  [Furnace]: http://github.com/whitequark/furnace

## Installation

    $ gem install furnace-xray

## Usage

First, you need to enable instrumentation for the functions you want to
observe. Here is a sample snippet:

``` ruby
mod = SSA::Module.new

fun = SSA::Function.new('my-function')

# It is important to enable instrumentation before doing anything else
# with the function. Otherwise, the collected data will be invalid.
fun.instrumentaiton = SSA::EventStream.new
mod.add fun

# Optionally, notify the instrumentation engine that you have started
# a transformation.
fun.instrumentation.transform_start "Set return type"

# Now, do whatever you want with the function.
fun.return_type = SSA.void_type

# After you have finished transforming functions, fetch the instrumentation
# data and dump it as JSON.
File.write("data.json", JSON.dump(mod.instrumentation))
```

To view collected data, just point furnace-xray to it:

    $ furnace-xray data.json
    [2013-01-27 20:05:13] INFO  WEBrick 1.3.1
    [2013-01-27 20:05:13] INFO  ruby 1.9.3 (2012-04-20) [x86_64-linux]
    == Sinatra/1.3.3 has taken the stage on 4567 for development with backup from WEBrick
    [2013-01-27 20:05:13] INFO  WEBrick::HTTPServer#start: pid=28695 port=4567

Now, open your ~~browser~~ Chrome or Chromium and point it to
http://localhost:4567.

![](http://f.cl.ly/items/2t0p052l1J1m283r2W2b/furnace-xray.png)

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

## License

MIT.

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
furnace-xray-1.1.0.pre2 README.md
furnace-xray-1.1.0.pre1 README.md