Instantly share code, notes, and snippets.

Dave Herman dherman

View GitHub Profile
View artifacts.json
"active": "release",
"targets": {
"release": {
"rustc": "rustc 1.26.0 (a77568041 2018-05-07)",
"env": {
"npm_config_target": null,
"npm_config_arch": null,
"npm_config_target_arch": null,
"npm_config_disturl": null,
macro_rules! const1 {
($id:ident, $depth:expr, [$($prefix:tt)*])
const $id: [&'static str; $depth] = [$($prefix),*];
macro_rules! const_tree_at {
($depth:tt ;

Env vars



Tool overrides

Possible environment variables

  • We want to provide good quality progress meters at console for fetch+unpack operation
  • Measuring progress smoothly requires knowing not just how many compressed bytes you have read but how many decompressed bytes you have written
  • Knowing the percentage complete of decompressed bytes written requires knowing the total decompressed size
  • Knowing the total decompressed size requires reading the field of the gzip layout that indicates decompressed size
  • That field is at a fixed offset from the end of the gzip file
  • In order to still get benefit of streaming we have to make a separate HTTP HEAD request to find the content length of the file and then a subsequent GET request to fetch just that tiny byte range to read that one field
  • (This does have overhead of a couple extra HTTP requests — anecdotally this seems cheap enough not to matter but maybe could matter in some environments?)
  • Unfortunately for GitHub releases, the files redirect to S3 URLs which seem to reject HEAD requests with a 403
  • We c

Directory layout

├── bin
│   ├── node
│   ├── npm ~> ../exe/launchscript
│   ├── npx ~> ../exe/launchscript
│   └── yarn
├── config.toml



  • notion use node 8
  • notion use ember-cli 3.4
  • notion use yarn 1.10
  • notion install heroku 7
  • notion install node 10
  • notion install npm default
pub trait IntoJs<'a, V: Value> {
fn into_js<C: Context<'a>>(self, cx: &mut C) -> Handle<'a, V>;
impl<'a, V: Value> IntoJs<'a, V> for Handle<'a, V> {
fn into_js<C: Context<'a>>(self, _: &mut C) -> Handle<'a, V> {