coz/.travis.yml
Alex Crichton 2f12e6e4f3 Add a Rust implementation of coz.h
After seeing a recording of Emery's recent talk at Strange Loop I was
super impressed with `coz` and immediately wanted to try it out with
Rust code! I was curious to see if `coz` could help us out with
profiling either Cargo, Rust's build system, or perhaps the compiler
itself, `rustc`. In any case I ended up creating
https://github.com/alexcrichton/coz-rs as a repository to house an
implementation of `coz.h` for Rust so `coz` could be used to easily work
with Rust executables.

I toyed around a bit and Emery [mentioned] that this would be good
support to have upstream once it's working, and I think it's working
now! I haven't been able to get a ton of useful results myself yet, but
I'm still figuring out the best way to ask `coz` questions and the best
way to instrument programs myself.

Nonetheless I think that the Rust support here is correct in the sense
that it's a faithful translation of `coz.h`, and now it's just a problem
with me learning how best to instrument programs.

This commit adds a new `rust` directory with a crate (Rust parlance for
"library") which provides macros that allow using `coz` instrumentation
similar as you would in C, except in idiomatic Rust style. I've
published the crate on Rust's package registry, crates.io, as
[`coz`][crate], and I don't mind keeping it there or transferring it to
y'all, whichever you'd prefer! I also don't mind being on the hook for
reviewing any Rust-related changes, or if y'all need to jettison the
Rust support in the future I don't mind that either and can give it a
home!

[mentioned]: https://github.com/alexcrichton/coz-rs/issues/2
[crate]: https://crates.io/crates/coz
2019-09-25 11:07:44 -07:00

40 lines
702 B
YAML

# Build on Ubuntu 18.04
dist: bionic
# Specify language
language: cpp
# Build with both clang and gcc
compiler:
- clang
- g++
# Build all branches except gh-pages
branches:
except:
- gh-pages
# Install dependencies
before_install:
- sudo apt-get update
- sudo apt-get install -y --install-recommends docutils-common libelfin-dev nodejs npm
# Make and install
install:
- make
- sudo make install
# Run the make check target (add tests later)
script:
- make check USE_SYSTEM_COZ=1
# Test the Rust support as well
matrix:
include:
- language: rust
rust: stable
before_install: true
install: true
script: cargo test --manifest-path rust/Cargo.toml